2012-04-06 110 views
1

这是在jQuery中传递两个id的正确方法吗?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")是内部selector2寻找selector1。它基本上等于$("selector2").find("selector1")。你似乎只想要两个独立的选择器。改为使用逗号选择器
  • 您可以使用.toggle(bool)来消除ifshow/hide
$("#domainToBeReged, #domainToBeReged0").toggle($(this).val() === "yes"); 
1

没有你的jQuery必须是:

$('#domainToBeReged,#domainToBeReged0');