我遇到了以下问题:
我正在调用带有表单的bootstrap模式。该表单附带一个下拉列表,如下所示:
<select id="requirement_id" name="requirement_id">
<option value="2">Sample Requirement</option>
<option value="3">Second Req</option>
<option value="5">New Req</option>
</select>
我添加了一段jquery,并将selected="selected"
添加到特定选项,我希望默认选择该选项。
当我提交表单时,似乎选择了此选项,但无论我的脚本选择了哪个选项:选择字段中的文本始终是“样本要求”(第一个)
你有一个想法,如何改变它? 我的jQuery代码如下:
$('.add_feature').click(function(){
$('#requirement_id option').each(function(){
$(this).removeAttr('selected');
});
$('#requirement_id').find('option[value="'+$(this).data('requirement')+'"]').attr('selected', 'selected');
});
答案 0 :(得分:5)
您正在过度思考它,您无需在selected
上删除或添加option
属性。您需要做的就是在val()
上使用select
,让jQuery为您完成工作。
$('#requirement_id').val(valueOfOptionToSelect));
在你的情况下似乎是:
$('#requirement_id').val($(this).data('requirement'));
假设.add_feature
的{{1}}包含要选择的选项(2,3或5)的值
如果您不想data-requirement
,请在代码中将val()
更改为attr()
,而prop()
就变得不必要了:
removeAttr()
答案 1 :(得分:1)
试试这个:
$('#requirement_id').val($(this).data('requirement'));