我有隐藏表单,其中包含一些选择字段和一些输入字段。单击按钮应显示该表单并在字段中设置一些值。输入字段已填充给定值,但我在选择字段时遇到问题。
使用此代码:
$("#form select[name=user]").val(value);
具有该值的选项获取属性“selected”(在 Firebug 中检查),但选择字段仍显示“Choose”(初始)选项。
我尝试在设置值后进行聚焦和模糊,但这也不起作用。
有什么建议吗?
<小时/>这几乎是标准形式:
<form action="#" id="form" class="fix">
<div class="holder">
<label>User:</label>
<select name="user" class="styled">
<option value="0" selected>Choose</option>
<option value="1">User 1</option>
<option value="2">User 2</option>
</select>
</div>
</form>
并通过调用 jQuery 语句:
$("#form select[name=user]").val('2');
$("#form").show();
我在 Firebug 中得到了这个:
<form action="#" id="form" class="fix" style="display:none">
<div class="holder">
<label>User:</label>
<select name="user" class="styled">
<option value="0">Choose</option>
<option value="1">User 1</option>
<option value="2" selected>User 2</option>
</select>
</div>
</form>
但选择的文本仍然是“选择”。如果我提交表单,该值就会正确传递。
如果我重置表单并选择某个选项,则所选选项的文本会正确显示。这就是我觉得奇怪的地方。
最佳答案
我找到了解决方案。我忘记调用 的更改事件。我不知道 jQuery 不会自动执行此操作。所以解决的代码是:
$("form select[name=user]").val(value).change();
关于jquery - 使用 jQuery select 更改它不会显示选定的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4344113/