javascript - jQuery.val() 方法无法在选择列表上设置值?

标签 javascript jquery

以下代码在我升级到 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/

相关文章:

javascript - 对函数表达式和我将函数表达式分配给的 var 使用相同的标识符是否存在任何问题?

javascript - 使用重叠透明图像的幻灯片

javascript - ZeroClipboard - 检查是否未加载

Javascript 验证十进制值范围

javascript - 我如何获得 socket.username ? (socket.io)

javascript - 从底部显示初始内容并在向上滚动时从数据库加载更多行

javascript - 在数组内附加值数组 - jquery

javascript - 如何去掉下面 JavaScript 循环中的逗号?

javascript - 如何在提交 HTML 表单时强制不接收数据

javascript - 如何以编程方式区分箭头函数和常规函数?