質問

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

私は「オレンジ」を選択するために複数の異なるアプローチを試みました。このjQueryは、特定のキーストロークが押されたときに実行されます。また、いくつかの理由で、HTMLは編集できません。jQueryのみを変更できます。

JavaScript / jQuery:

(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で選択できます。
Live Demo: http://jsfiddle.net/5y9mg/10/

  $(document).ready(function(){

    $(document).on("keydown", function(e) {

        // ignore unless CTRL + ALT/COMMAND + N was pressed
     if (!(e.keyCode == 78 && e.ctrlKey && e.altKey )) return;
        $('#location_account_associations_attributes_0_account_id option:eq(1)').prop('selected', true)
     });
});
.

このようなIDと値で選択します。

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

他のヒント

溶液の発見を終わらせる

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

特に修飾子を使用して複数のキープレスを検出する

非常にトリッキーです。

このその他のポストその後、ドロップダウンの値を変更するのに複雑な動作を追加する前に、キープレスイベントがより基本的な結果を生成していることを確認してください。/ P>

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top