2013-06-14 4 views
-1

Как получить доступ к объекту jquery при вызове validateName?Как получить доступ к объекту JQuery

В моем коде ниже errorDate не является объектом JQuery.

Поправка к имени переменной

$(document).ready(function() { 
    var errorDate = $("#errorDate"); 
    errorDate.blur(validateName); 

    function validateName() { 
     if (errorDate.val().length == "") { 
      errorDate.addClass("error"); 
      return false; 
     } 
     else { 
      errorDate.removeClass("error"); 
      return true; 
     } 
    } 
}); 
+4

Что такое 'имя'? –

+0

Извинения, моя ошибка. Исправлено имя переменной, также упоминаемое в вашем сообщении. Спасибо @ArunPJohny – ojhawkins

ответ

2

Вы можете

$(document).ready(function() { 
    var errorDate = $("#errorDate"); 
    errorDate.blur(validateName); 

    function validateName() { 
     var $this = $(this); 
     if ($this.val().length == "") { 
      $this.addClass("error"); 
      return false; 
     } 
     else { 
      $this.removeClass("error"); 
      return true; 
     } 
    } 
}); 

Или использовать errorDate вместо name, поскольку это переменная закрытия

$(document).ready(function() { 
    var errorDate = $("#errorDate"); 
    errorDate.blur(validateName); 

    function validateName() { 
     if (errorDate.val().length == "") { 
      errorDate.addClass("error"); 
      return false; 
     } 
     else { 
      errorDate.removeClass("error"); 
      return true; 
     } 
    } 
}); 
5

Просто используйте $(this) вместо name.

2

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

$(document).ready(function() { 
    var errorDate = $("#errorDate"); 
    errorDate.blur(validateName); 

    function validateName() { 
     // no need to get length you can use $(this).val()=="" 
     if ($(this).val() == "") { 
      $(this).addClass("error"); 
      return false; 
     } 
     else { 
      $(this).removeClass("error"); 
      return true; 
     } 
    } 
}); 

Fiddle http://jsfiddle.net/jtWFX/

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