У меня есть код, который проверяет, доступно ли имя пользователя в базе данных, код может отображать сообщение об ошибке, что письмо уже существует, но когда я нажимаю кнопка 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:
<input type="text" name="Name" id="Name" value="" />
<span id="msg"></span>
</form>
</body>
</html>
Всегда проверяйте серверную сторону. Даже если используется проверка JavaScript, тривиально легко обойти это. На стороне сервера отправьте сообщение об ошибке, если имя пользователя уже используется. Никогда не полагайтесь на данные от клиента как уже проверенные. – Anigel
Также, пожалуйста, используйте нашу функцию поиска. См. [Как отключить кнопку отправки с jquery] (http://stackoverflow.com/q/1237896/911182) – Herbert