3

我有以下问题:

我正在调用带有表单的引导模式。该表单带有一个下拉列表,如下所示:

<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>

我添加了一段带有添加selected="selected"到特定选项的 jquery,我希望默认选择该选项。当我提交表单时,似乎选择了此选项,但无论我的脚本选择了哪个选项:选择字段中的文本始终是“示例要求”(第一个)

你有一个想法,如何改变它?我的 jQuery 代码如下:

$('.add_feature').click(function(){
    $('#requirement_id option').each(function(){
      $(this).removeAttr('selected');
    });
    $('#requirement_id').find('option[value="'+$(this).data('requirement')+'"]').attr('selected', 'selected');
  });
4

2 回答 2

5

你想多了,你不需要selectedoption. 您需要做的就是使用val()jQueryselect并让 jQuery 为您完成工作。

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

在您的情况下,它似乎是:

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

假设.add_feature有一个data-requirement包含要选择的选项的值(2、3 或 5)

小提琴

如果您确实想不使用val(),只需在您的代码中更改attr()为,就变得不必要了:prop()removeAttr()

$('#requirement_id').find('option[value="' + $(this).data('requirement') + '"]').prop('selected', 'selected');

小提琴

于 2013-08-15T12:17:16.130 回答
1

尝试这个:

$('#requirement_id').val($(this).data('requirement'));
于 2013-08-15T12:19:40.473 回答