2009-12-23 1 views
1

Я пытаюсь создать свою собственную функцию LiveValidation (LiveValidation.com), которая подключается к базе данных и проверяет, существует ли имя пользователя. Это соответствующая часть формы:Пользовательская функция проверки в реальном времени

Username: <input type="text" name="username" id="username" class="textinput"> 
    <script type="text/javascript"> 
     var username = new LiveValidation('username'); 
     username.add(Validate.Presence); 
     username.add(Validate.Length, { minimum: 3, maximum: 12 }); 
     username.add(Validate.Username); 
    </script> 

Это моя Validate.Username функция:

Validate.Username = function(value, paramsObj){ 

     var paramsObj = paramsObj || {}; 
     var message = paramsObj.failureMessage || "Sorry that username is taken!"; 

    var http = new XMLHttpRequest(); 
    var url = "usernamecheck.php"; 
    var params = "username="+value; 
    http.open("POST", url, true); 
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    http.setRequestHeader("Content-length", params.length); 
    http.setRequestHeader("Connection", "close"); 
    http.onreadystatechange = function() { 
     if(http.readyState == 4 && http.status == 200) { 
      if(http.responseText == 'yes') { 
       return true; 
      } else { 
       Validate.fail(message); 
       return false; 
      } 
     } 
    } 
    http.send(params); 
} 

Вот соответствующая часть usernamecheck.php:

if(mysql_num_rows($query) != 0 && $query) { 
      echo "no"; 
     } else if ($query) { 
      echo "yes"; 
     } else { 
      echo "err"; 
     } 

Функция кажется (если я положил alert('fail') выше Validate.fail(message); Я получаю предупреждение, когда используется используемое имя пользователя), но LiveValidation никогда не показывает сообщение об ошибке. Кто-нибудь знает, что я сделал неправильно?

Благодаря

ответ

1

Ммм ... просто глядя на него очень быстро, может быть, что «сообщение» не определен в функции? Он определен в родительской функции.

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

  • Нет связанных вопросов^_^