2013-12-19 3 views
0

У меня есть форма HTML, которая имеет полеПочему это происходит за один «с»

<div style="width:100px; padding-top:10px;margin-left:10px;float:left;" align="left">Your Username:</div> 
<div style="width:300px;float:left;" align="left"><input type="text" id="username" name="username" value="" class="vpb_textAreaBoxInputs"></div> 

Теперь, когда я пытаюсь проверить форму с помощью Javacript как этот

<script> 
    $(document).ready(function() { 
     $("#smbt").click(function(){ 
      if ($("#username").val()=="") { 
       alert("Field is empty."); 
      } else { 
       alert("You are ok."); 
      } 
     }); 
    }); 
</script> 

Вышеприведенная программа работает нормально, но странная вещь происходит, когда я изменить Див идентификатор «логины» и имя, чтобы «имена пользователей», как этого

<input type="text" id="usernames" name="usernames" class="vpb_textAreaBoxInputs"> 

A Вскоре, как я делаю выше, программа начинает давать неправильный вывод. Например, если текстовое поле имени пользователя пусто, оно выдает предупреждающее сообщение «Вы в порядке», и если оно еще не появляется, появится сообщение «У вас все в порядке». Но как только я изменяю id = "username" name = "username", программа работает правильно. Почему это происходит из-за 's'

+4

вы изменили '$ ('# имя пользователя')' в '$ ('# логинов')' тоже? – brbcoding

ответ

4

Вам нужно изменить jQuery, чтобы он соответствовал изменению идентификатора. Он ищет «имя пользователя», когда идентификатор «usernames», поэтому утверждение ложно.

if ($("#username").val()=="") { 

Должно быть

if ($("#usernames").val()=="") { 
1

Меняются вы этот тоже?

$("#username").val() 

в

$("#usernames").val() 
0

При изменении id поля к usernames, $("#username").val() приведет к undefined, которая отличается от пустой строки. Поэтому вам нужно также изменить селектор jQuery.

Если вы хотите иметь дело с undefined и пустые строки вы можете изменить тест:

if (!$("#username").val()) { 
    alert("Field is empty."); 
} else { 
    alert("You are ok."); 
} 
0

Это происходит потому, что имя пользователя не найден на фактической странице.

Секундомеры JQuery возвращают массив согласованных алей. Таким образом, val становится неопределенным.

который не равен "", поэтому ваш код вводит условие else.

НТН

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