【问题标题】:Change the displayed select option with jquery使用 jquery 更改显示的选择选项
【发布时间】:2013-08-17 15:01:34
【问题描述】:

我有以下问题:

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

<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');
  });

【问题讨论】:

    标签: javascript jquery html twitter-bootstrap


    【解决方案1】:

    您想多了,您不需要在option 上删除或添加selected 属性。您需要做的就是在select 上使用val(),让jQuery 为您完成工作。

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

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

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

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

    Fiddle

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

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

    Fiddle

    【讨论】:

    • 谢谢,这对我有用。它指出我的解决方案也有效,但前提是我试图向某人展示我的问题;)
    【解决方案2】:

    试试这个:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-27
      • 2012-02-19
      • 1970-01-01
      • 2011-10-08
      • 2011-05-19
      • 2016-08-13
      • 1970-01-01
      相关资源
      最近更新 更多