以下代码在我升级到 1.4.1 时失败,当我回滚到 1.3.2 时运行正常。
var ddlCountry = $("#<%= this.ddlCountry.ClientID %>");
if (ddlCountry.val() == "") {
ddlCountry.val(address.country);
ddlCountry.change();
}
顺便说一句,问题是 <select>
的值列表永远不会设置。
是的,这一切都包含在 $(document).ready
中:)
编辑:作为引用,这是我使用的代码:
ddlCountry.find("option").each(function() {
if ($(this).text() == address.country) {
ddlCountry.val($(this).val());
}
});
最佳答案
如果您正在设置值,这将起作用,在 jQuery 1.4 中必须是值而不是文本,示例:
<select id="ddlCountry">
<option value="1">A</option>
<option value="2">B</option>
</select>
在 jQuery 1.3 中这有效:$("#ddlCountry").val("A")
在 1.4 中它不是它必须是:$("#ddlCountry").val("1")
或者,如果您无法更改下拉列表,您可以搜索并根据如下文本进行选择:
ddlCountry.filter(function() {
return $(this).text() == address.country;
})[0].selected = true;
供引用,here's the jQuery change that happened .来自 1.4 注释:
.val(“…”) on an option or a checkbox is no longer ambiguous (it will always select by value now, not by text value). (Commit)
关于javascript - jQuery.val() 方法无法在选择列表上设置值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2373219/