2013-07-28 1 views
0

У меня есть код, который проверяет, доступно ли имя пользователя в базе данных, код может отображать сообщение об ошибке, что письмо уже существует, но когда я нажимаю кнопка submit будет вставлять имя пользователя в базу данных, даже если имя пользователя уже существует.отключите кнопку отправки, если имя пользователя уже существует с помощью ajax и php

вот мой код:

function validateForm(){ 
<script> 
$(document).ready(function() { 
    $("#Name").change(function() { 
     var username = $("#Name").val(); 
     var msg = $("#msg"); 
     if (username.length > 2) { 
      $("#msg").html('Checking availability'); 
      $.ajax({ 
       type: "POST", 
       url: "check_availability.php", 
       data: "Name=" + username, 
       success: function (messagess) { 
        $("#msg").ajaxComplete(function (event, request) { 
         if (messagess.indexOf('OK') > 0) { 
          $("#Name").removeClass("exists"); 
          $("#Name").addClass("avail"); 
          msg.html('the user name is available</font>'); 
         } else { 
          $("#Name").removeClass("avail"); 
          $("#Name").addClass("exists"); 
          msg.html('the user name is already exists'); 
         } 
        }); 
       } 
      }); 
     } 
    }); 
}); 
} 
</script> 
</head> 
<body> 

<form action="" method="post" name="form" onsubmit="return validateForm()">  
User Email:&nbsp; 
<input type="text" name="Name" id="Name" value="" /> 
<span id="msg"></span> 
</form> 
</body> 
</html> 
+1

Всегда проверяйте серверную сторону. Даже если используется проверка JavaScript, тривиально легко обойти это. На стороне сервера отправьте сообщение об ошибке, если имя пользователя уже используется. Никогда не полагайтесь на данные от клиента как уже проверенные. – Anigel

+0

Также, пожалуйста, используйте нашу функцию поиска. См. [Как отключить кнопку отправки с jquery] (http://stackoverflow.com/q/1237896/911182) – Herbert

ответ

1

Вы хотите использовать .attr('disabled', 'disabled') на элемент, который вы хотите отключить, если проверка возвращает, что имя пользователя уже существует. И для удаления отключения вы будете использовать .removeAttr('disabled').

И только рекомендация, если вы уже отказываетесь от проверки правильности проверки подлинности php таким образом, если javascript отключен, все еще существует проверка на месте.

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