2012-04-06 3 views
1

Это правильный способ передать два идентификатора в jQuery?jQuery: несколько значений - выпадающие меню

У меня возникает следующая проблема, как видно на изображении.

Регистрация домена: не отображается поле ввода.

Передача домена: отображается только одно поле ввода.

Изображение:

enter image description here

CSS:

#domainToBeReged, #domainToBeReged0, #domainToBeTransfered{ 
    display:none; 
} 

HTML:

<label for="domainRequired">Domain Registration: </label> 
        <select name="domainRequired" id="domainRequired"> 
         <option value="pleaseSelect">Please Select</option> 
         <option value="yes">Yes</option> 
         <option value="no">No</option> 
        </select> 
     <div id="domainToBeReged"> 
      <label for="domainToBeReged">Domain One:</label><input name="domainToBeReged" id="domainToBeReged" type="text" placeholder="http://www." /> 
      <label for="domainToBeReged0">Domain Two:</label><input name="domainToBeReged0" id="domainToBeReged0" type="text" placeholder="http://www." /> 

     </div> 
     <label for="domainTransfer">Domain Transfer: </label> 
        <select name="domainTransfer" id="domainTransfer"> 
         <option value="pleaseSelect">Please Select</option> 
         <option value="yes">Yes</option> 
         <option value="no">No</option> 
        </select> 
     <div id="domainToBeTransfered"> 
        <label for="domainToBeTransfered">Domain:</label><input name="domainToBeTransfered" id="domainToBeTransfered" type="text" placeholder="http://www." /> 
        <label for="domainToBeTransfered0">Domain:</label><input name="domainToBeTransfered0" id="domainToBeTransfered0" type="text" placeholder="http://www." /> 
     </div> 
     <label for="currentHosting">Current Hosting: </label> 
     <textarea cols="10" rows="10" name="currentHosting" id="currentHosting"></textarea> 
     <input type="submit" class="nextButton" value="Next" /> 
     </fieldset> 
    </form> 

JQuery:

jQuery(document).ready(function() { 
$('select[name="domainRequired"]').change(function() { 
      var $domain = $('#domainToBeReged','#domainToBeReged0'); 
       if ($(this).val() == 'yes') { 
        $domain.show(); 
       } else { 
        $domain.hide(); 
     } 
      });    


     $('select[name="domainTransfer"]').change(function() { 
      var $domain = $('#domainToBeTransfered'); 
       if ($(this).val() == 'yes') { 
        $domain.show(); 
       } else { 
        $domain.hide(); 
     } 
      });    

    }); 

ответ

4

Это не совсем верно:

  • $("selector1", "selector2") ищет selector1 внутри selector2. Это в основном эквивалентно $("selector2").find("selector1"). Кажется, вам просто нужны два независимых селектора. Используйте вместо этого переключатель .
  • Вы можете использовать .toggle(bool) для устранения if и show/hide.
$("#domainToBeReged, #domainToBeReged0").toggle($(this).val() === "yes"); 
Смежные вопросы