2 回答

TA貢獻1775條經驗 獲得超11個贊
由于您在這里處理的是<option>
a 的 s <select>
,因此您需要將所選屬性分配給所選屬性。
其次,由于您正在處理<option>
s,因此將調用該屬性value
而不是val
。(如果您提交了,這一點很重要<form>
)
所以,你的代碼將是這樣的:
jQuery('.page-enroll select[name="batch"] option[val="' + service + '-' + batch + '"]').attr("selected", true)
在您的網站上進行了測試:-)
其他一些小建議:通過使用,location.search
您可以只閱讀后面的部分?
(也許可以保存一些正則表達式,例如通過拆分&
和=
)。

TA貢獻1834條經驗 獲得超8個贊
您需要有
value
自己的選擇 - 不需要難以檢索的數據屬性如果你有價值,這也會起作用并替換 $.urlParam
如果你沒有價值(這沒有任何意義),你需要選擇選項,attr("val")
但這非常難看
const parms = new URLSearchParams("?service=enrichment&batch=QC1"); // this will be location.search
$(function() {
const value = parms.get("service")+"-"+parms.get("batch");
$("[name=batch]").val(value); // sets the value attribute! val is the jQuery method
// why you do not need data-attributes on the options:
$("[name=batch]").on("change",function() {
const [service, batch] = this.value ? this.value.split("-") : ["",""];
console.log(service,batch);
})
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="batch">
<option selected="" disabled="">Preferred venue and batch</option>
<option disabled="">Grade VI Math Enrichment Program</option>
<option value="enrichment-SR1">Sta. Rosa, Laguna ? Batch 1</option>
<option value="enrichment-QC1">Quezon City ? Batch 1</option>
<option value="enrichment-LB2">Los Ba?os, Laguna ? Batch 2</option>
<option disabled="">High School Entrance Test Review</option>
<option value="hset-LB1">Los Ba?os, Laguna ? PSHS + UPRHS Review – LB1</option>
<option value="hset-SR1">Sta. Rosa, Laguna ? PSHS + UPRHS Review – SR1</option>
<option value="hset-SR2">Sta. Rosa, Laguna ? PSHS + UPRHS Review – SR2</option>
</select>
- 2 回答
- 0 關注
- 155 瀏覽
添加回答
舉報