Проблема проверки JQuery Blur - PullRequest
0 голосов
/ 04 июня 2010

У меня есть простая форма, которую я хочу проверить с помощью размытия, если текстовое поле пусто.

Приведенный ниже код должен работать, но продолжает предупреждать меня, даже если я выскакиваю какой-нибудь текст, пожалуйста, что я делаю не так?

var name = $("input#name").val();
$("input#name").blur(function() 
{
      if (('input#name:empty'))
      {
            // Testing
            alert('Empty');
      }
});

Ответы [ 2 ]

1 голос
/ 04 июня 2010

Вы хотите использовать $(this).val(), например:

$("input#name").blur(function() {
   if ($(this).val().length === 0) {
     // Testing
     alert('Empty');
   }
});

В настоящее время вы проверяете if('input#name:empty'), что верно, любая строка будет true в JavaScript (которая имеет слабый тип). Кроме того, селектор :empty проверяет, что у него нет дочерних элементов , а не что его значение пусто, поэтому убедитесь, что значение является пустой строкой .length пусто, как у меня выше:)

Кроме того, если только не существует вероятность того, что этот идентификатор находится в другом типе элемента, который вы не хотите сопоставлять, #name будет достаточно и будет быстрее, префикс input является излишним.

0 голосов
/ 04 июня 2010

Попробуйте это:

$("input#name").blur(function() 
{
  var name = $(this).val();
  if (name.length == 0)
  {
        // Testing
        alert('Empty');
  }
});

Редактировать: Ник указал, что входной текст необходимо проверить, когда происходит размытие. Если я сделаю еще какие-то изменения, это будет как его ответ, поэтому я остановлюсь здесь.

...