我有一个包含已知值的下拉列表。我想要做的是将下拉列表设置为我知道使用 jQuery 存在的特定值。使用常规 JavaScript,我会做类似的事情:
ddl = document.getElementById("ID of element goes here");
ddl.value = 2; // 2 being the value I want to set it too.
但是,我需要使用 jQuery,因为我正在为我的选择器使用 CSS 类(愚蠢的ASP.NET客户端 ID ...)。
以下是我尝试过的一些事情:
$("._statusDDL").val(2); // Doesn't find 2 as a value.
$("._statusDDL").children("option").val(2) // Also failed.
我怎么能用 jQuery 做到这一点?
更新
事实证明,我第一次做对了:
$("._statusDDL").val(2);
当我在上方发出警报时,它工作正常,但当我删除警报并让它全速运行时,我收到错误
无法设置所选属性。索引无效
我不确定这是 jQuery 还是 Internet Explorer 6 的错误(我猜的是 Internet Explorer 6),但它非常烦人。
jQuery 的文档说明:
[jQuery.val] 检查或选择所有单选按钮,复选框,并选择与该组值匹配的选项。
此行为是在jQuery
1.2
及更高版本中。
你最有可能想要这个:
$("._statusDDL").val('2');
使用隐藏字段,您需要使用如下:
$("._statusDDL").val(2);
$("._statusDDL").change();
要么
$("._statusDDL").val(2).change();
仅仅是一个 FYI,您不需要使用 CSS 类来完成此任务。
您可以编写以下代码行以在客户端上获取正确的控件名称:
$("#<%= statusDDL.ClientID %>").val("2");
ASP.NET 将在 jQuery 中正确呈现控件 ID。