2012-06-13 6 views
4

Я использую jQuery 1.5.2 для управления двумя выпадающими списками в форме. У меня есть специальное требование, чтобы, если выбрана опция «Другой», оба выбора должны быть «Другое»..val ("value") не работает как ожидалось в jQuery 1.5

Проблема:

мой код выглядит следующим образом

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

Проблема заключается в том, что вместо соблюдения правила, что оба поля быть «Other», $("#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')]}" 
    /> 

Что хром отладчик показывает мне после установки эфира поле, «Other» это ...

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

Предложение еще из этих функций работ как и предполагалось.


Вопрос:

Как обеспечить соблюдение, что выбор «Другие» в одном поле автоматически выбирает «Other» в соответствующем поле?

+4

вы можете предоставить HTML слишком – mgraph

+0

[. Похоже, он прекрасно работает] (http://jsfiddle.net/7B68C/) Пожалуйста, проверьте, что скрипку и опубликовать HTML , – Pointy

+5

Его работа просто прекрасна, см. Http://jsfiddle.net/U75Rw/2/ .. Я думаю, что у вас проблема с чем-то еще – thecodeparadox

ответ

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

Возможно, вы захотите проверить след комментария; вчера было решено :) –