我有隐藏的表单,有几个选择字段和一些输入字段.单击按钮应显示该表单并在字段中设置一些值.输入字段用给定的值填充,但我有选择字段的问题.
使用此代码:
$("#form select[name=user]").val(value);
具有该值的选项获取属性“已选中”(在Firebug中选中),但选择字段仍显示“选择”(初始)选项.
设置值后我试着做焦点和模糊,但这也不起作用.
有什么建议?
这几乎是标准形式:
<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();