4

jQuery 1.5.2 を使用して、フォームで 2 つのドロップダウン選択を操作しています。「その他」オプションが選択されている場合、両方の選択が「その他」でなければならないという特別な要件があります。

問題:

私のコードは次のようになります

$("#Select_One")
    .change(function() {
        if($(this).val() == "Other") {
            $("#Select_Two").val("Other");
        }
        else {
            if($("#Select_Two").val() == "Other") {
                $("#Select_Two").val("");
            }
        }
    });

$("#Select_Two")
    .change(function() {
        if($(this).val() == "Other") {
            $("#Select_One").val("Other");
        }
        else {
            if($("#Select_One").val() == "Other") {
                $("#Select_One").val("");
            }
        }
    });

問題は、両方のフィールドが「その他」であるというルールを強制するのではなく、それぞれの下にプロパティを$("#Select_Two").val("Other");追加または上書きすることです。で同じことが起こります。value="Other"<option>#Select_Two#Select_One

私の HTML は grails テンプレートからのものです

    <g:select id="Select_One"
              name="Units_One"
              class="Required DropDown"
              from="${Unit_One.values()}"
              optionKey="value_"
              optionValue="${{it.value_}}"
              noSelection="${['': message(code: 'units.no.selection')]}"
     />
     <g:select id="Select_Two"
               name="Units_Two"
               class="Required DropDown"
               from="${Unit_Two.values()}"
               optionKey="value_"
               optionValue="${{it.value_}}"
               noSelection="${['': message(code: 'units.no.selection')]}"
     />

ether フィールドを「Other」に設定した後に chrome デバッガーが表示する内容は次のとおりです...

<select name="Units_Two" id='Select_Two" class="Required DropDown">
  <option value="Other">Select Number</option>
  <option value="Other">Other</option>
  <option value="Other">1</option>
  etc...

これらの関数の else 句は、意図したとおりに機能します。


質問:

あるフィールドで「その他」を選択すると、対応するフィールドで「その他」が自動的に選択されるようにするにはどうすればよいですか?

4

1 に答える 1

0

多分試してください:

$("#Select_One").change(function() {
    if ($(this).val() == "Other") {
        $("#Select_Two option[value='Other']").attr("selected",true);
    }
    else {
        if ($("#Select_Two").val() == "Other") {
            $("#Select_Two").val("");
        }
    }
});

$("#Select_Two").change(function() {
    if ($(this).val() == "Other") {
        $("#Select_One option[value='Other']").attr("selected",true);
    }
    else {
        if ($("#Select_One").val() == "Other") {
            $("#Select_One").val("");
        }
    }
});​
于 2012-06-14T21:35:52.497 に答える