Я создаю регистрационную форму, и я хочу ее проверить и проверить имя пользователя и доступность электронной почты, прежде чем он позволит пользователю отправить форму, таким образом, я делаю не нужна отдельная страница, рассказывающая им об ошибках и заставляющая их начинать.JQuery: попытка отключить кнопку, если используется хотя бы одно поле
Код для проверки доступности:
function checkUsername() {
$.post('php/availability.php',{username: $('#username').val()}, function(usernamedata){
if(usernamedata.exists){
$("#username").css('background-image','url(images/in-use.png)');
$("#username-use").val("inuse");
}else{
$("#username").css('background-image','none');
$("#username-use").val("free");
} }, 'JSON'); }
Код для проверки электронной почты является точно такой же, помимо очевидных различий. Он проверяет базу данных для сопоставления имени пользователя/электронной почты и устанавливает значение скрытого поля в зависимости от результата. По умолчанию скрытые поля установлены как «свободные».
Это код, который должен отключить кнопку регистрации, если для имени пользователя или электронной почты установлено значение «inuse». Однако, похоже, у него есть собственный ум, и я не могу понять, как он достигает своего конечного результата.
function buttonCheck() {
var username = $("#username-use").val();
var email = $("#email-use").val();
if(username == "free" && email == "free") {
$("#registration-send").attr('disabled','disabled');
}
else {
$("#registration-send").removeAttr('disabled');
} }
Кажется, что он работает в обратном направлении, позволяя кнопке, когда что-то «используется». Я попытался поменять местами, но ничего не меняет.
checkUsername()/checkEmail() и buttonCheck() оба созвав OnChange их ассоциированных входов:
<input id="username" name="username" type="text" autocomplete="off" maxlength="100" class="req-string" onChange="checkUsername(); buttonCheck()">
У меня есть ощущение, что это может быть реализовано в более изящным способом с $ (х) .focus() - 'http://api.jquery.com/focus/'. Вы рассматривали этот вариант? – theMarceloR
Да, это выглядит более элегантно. Может ли он использоваться в «функции запуска при удалении фокуса»? – Adam