jQuery:多个值 - 下拉菜单

时间:2012-04-06 21:25:44

标签: jquery html css

这是在jQuery中传递两个id的正确方法吗?

我遇到了以下问题,如图所示。

域名注册:不显示输入框。

域名转移:仅显示一个输入框。

图片:

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

    });

2 个答案:

答案 0 :(得分:4)

这不完全正确:

  • $("selector1", "selector2")正在selector1内搜索selector2。它基本上等同于$("selector2").find("selector1")。你似乎只想要两个独立的选择器。请改用逗号选择器
  • 您可以使用.toggle(bool)来消除ifshow / hide
$("#domainToBeReged, #domainToBeReged0").toggle($(this).val() === "yes");

答案 1 :(得分:1)

不,你的jquery必须是:

$('#domainToBeReged,#domainToBeReged0');