Javascript 使用jquery设置select2输入的值

Javascript 使用jquery设置select2输入的值,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,我正在尝试使用jquery设置select2值。这可能是一个重复的问题,但我在这里读了30个不同的回答,还没有找到一个能解决我的问题 HTML代码: <div class="has_many_fields" data-required-has-many-fields-rows="1" id="location_account_associations"><input id="location_account_associations_attributes_0__destroy"

我正在尝试使用jquery设置select2值。这可能是一个重复的问题,但我在这里读了30个不同的回答,还没有找到一个能解决我的问题

HTML代码:

<div class="has_many_fields" data-required-has-many-fields-rows="1" id="location_account_associations"><input id="location_account_associations_attributes_0__destroy" name="location[account_associations_attributes][0][_destroy]" type="hidden" value="false" />
<div class="has_many_fields_row countable" id="location_account_associations_attributes_0">
    <div class="form__row form__row--spreadsheet">
        <div class="form__row__body">
            <div class="form__row__field-wrapper">
                <ul class="grid grid--no-gutters">
                    <li class="grid__6 grid__x--show">
                        Account Thing
                        <input id="location_account_associations_attributes_0_ab_account_id" name="location[account_associations_attributes][0][ab_account_id]" type="hidden" value="42" />
                    </li>
                    <li class="grid__5">
                        <select class="js-select2-combobox" id="location_account_associations_attributes_0_account_id" name="location[account_associations_attributes][0][account_id]" placeholder=" " reflection="#&lt;ActiveRecord::Reflection::AssociationReflection:0x012fb5asd200e8&gt;">
                            <option value=""></option>
                            <option value="1">Orange</option>
                            <option value="2">Apple</option>
                        </select>
                    </li>
                </ul>
            </div>
        </div>
    </div>
</div>
(function() {
    $(document).on("keydown", function(e) {

        // ignore unless CTRL + ALT/COMMAND + N was pressed
        if (!(e.keyCode == 78 && e.ctrlKey && e.altKey )) return

        jQuery('[name*="[account_associations_attributes][0]').select2("val",1);
        jQuery('[name*="[account_associations_attributes][0]').select2("val","Orange");
     })
 }())
试试这个:
您可以通过选择id来选择它。
现场演示:

您还可以按id和值选择它,如下所示:

 $('#location_account_associations_attributes_0_account_id option[value="1"]').prop('selected', true)

检测多个按键,特别是使用修改器,是非常棘手的


在添加更复杂的行为(如更改下拉列表的值)之前,请先查看并确保您的按键事件正在生成更基本的结果(一些简单的结果,如
警报()
),根据浏览器和下拉列表本身的不同,更改下拉列表的值也可能很棘手。

最终找到了解决方案

jQuery('[name*="[account_associations_attributes][0]"]').select2('val', '1')

@扎克:你试过这个吗?我没试过,但我试过了,而且不起作用。我编辑了这个问题以包含更多的javascript。。。也许这会有帮助?@Zack:按CTRL+ALT+N,然后它会在你的选择框中选择橙色。对不起,我出去吃午饭了。仍然不起作用。不知道为什么。我将进行一段时间的实验。你们在现场演示中检查过了吗?按CTRL+ALT+NYea。。。。我试过了。。。活动进行得很顺利。我还有50件其他的东西在比赛中运行。这是唯一一个不起作用的。谢谢。这起作用了。是否有任何解决方案可以进行多个选择/值?对于示例值1、2和5,我已找到。如下所示:
select2('val',['1','2','5'])
jQuery('[name*="[account_associations_attributes][0]"]').select2('val', '1')