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 关注
- 119 浏览
添加回答
举报