使用jquery更改显示的选择选项

时间:2013-08-15 12:14:18

标签: javascript jquery html twitter-bootstrap

我遇到了以下问题:

我正在调用带有表单的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');
  });

2 个答案:

答案 0 :(得分:5)

您正在过度思考它,您无需在selected上删除或添加option属性。您需要做的就是在val()上使用select,让jQuery为您完成工作。

$('#requirement_id').val(valueOfOptionToSelect));

在你的情况下似乎是:

$('#requirement_id').val($(this).data('requirement'));

假设.add_feature的{​​{1}}包含要选择的选项(2,3或5)的值

Fiddle

如果您不想data-requirement,请在代码中将val()更改为attr(),而prop()就变得不必要了:

removeAttr()

Fiddle

答案 1 :(得分:1)

试试这个:

$('#requirement_id').val($(this).data('requirement'));