jQuery Selector .not()不起作用

时间:2015-01-20 15:39:28

标签: jquery jquery-selectors

我很困惑为什么.not()选择器不会影响验证。这是我的HTML表单:

<input name="Title" id="Title" type="text" />
<div id="ErrorTitle" class="hiddenbox"></div>

<input name="Text" id="Text" type="text" />
<div id="ErrorText" class="hiddenbox"></div>

<input name="Price" id="Price" type="text" />
<div id="ErrorPrice" class="hiddenbox"></div>

这就是jquery:

if($('#Title').val() == '')
{
    $('#Title').focus();
    ErrorBox('Please enter title', 'ErrorTitle'); // Write message in .hiddenbox
    $('.hiddenbox').not('#ErrorTitle .hiddenbox').hide();
}
else if($('#Text').val() == '')
{
    $('#Text').focus();
    ErrorBox('Please enter text', 'ErrorText'); // Write message in .hiddenbox
    $('.hiddenbox').not('#ErrorText .hiddenbox').hide();
}
else if($('#Price').val() == '')
{
    $('#Price').focus();
    ErrorBox('Please enter price', 'ErrorPrice'); // Write message in .hiddenbox
    $('.hiddenbox').not('#ErrorPrice .hiddenbox').hide();
}

提交表单时,不会显示任何错误消息! 我错了吗?!

1 个答案:

答案 0 :(得分:1)

我认为你的选择器错了:

$(".validate").on('click', valid);
        function valid() {

            if($('#Title').val() == '')
            {

                $('#Title').focus();
                $("#ErrorTitle.hiddenbox").text("errortitle"); // Write message in .hiddenbox
                $("#ErrorTitle.hiddenbox").show();
                $('.hiddenbox').not('#ErrorTitle.hiddenbox').hide();
            }
            else if($('#Text').val() == '')
            {
                $('#Text').focus();
                $("#ErrorText.hiddenbox").text("errortext"); // Write message in .hiddenbox
                $("#ErrorText.hiddenbox").show();
                $('.hiddenbox').not('#ErrorText.hiddenbox').hide();
            }
            else if($('#Price').val() == '')
            {
                $('#Price').focus();
                 $("#ErrorPrice.hiddenbox").text("errorprice"); // Write message in .hiddenbox
                $("#ErrorPrice.hiddenbox").show();
                $('.hiddenbox').not('#ErrorPrice.hiddenbox').hide();
            }
        }

应该做的伎俩。 这是小提琴:http://jsfiddle.net/BenoitNgo/hm128k63/