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("");
            }
        }
    });

问题是,不是强制执行两个字段都是“其他”的规则,而是在每个under上$("#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 回答