2015-01-20 3 views
0

Я застрял, почему селектор .not() не влияет на проверку. Это мой HTML форма:jQuery Selector .not() не работает

<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

Как вы используете селектор идентификатора просто использовать 'нет («# ErrorTitle»)' нет необходимости выбора класса – Satpal

+1

Узнайте, как использовать самые основные 'CSS' селекторы перед началом коды , Пространство обозначает иерархию. – melancia

ответ

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/

+0

Это спасает меня :) Спасибо! – onbids

+0

С удовольствием :) –

Смежные вопросы