协慌网

登录 贡献 社区

使用 jQuery 更改下拉列表的选定值

我有一个包含已知值的下拉列表。我想要做的是将下拉列表设置为我知道使用 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。