当我升级到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());
}
});
答案 0 :(得分:6)
如果你设置值,这将有效,在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(“...”)不再含糊不清(它现在将始终按值选择,而不是按文本值选择)。 (提交)