Здравсвуйте ув. программисты! Я начинающий не бейте больно Есть страница регистрации с полем логина " index.php ". Код (Text): <?php header('Content-Type: text/html; charset=utf-8');?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Проверка формы</title> <meta http-equiv="content-type" content="application/xhtml+xml; charset=windows-1251" /> <script type="text/javascript" src="jquery-1.11.3.js"></script> <style> .inputRed{ border:1px solid #ff4040; background: #ffcece; } .inputGreen{ border:1px solid #83c954; background: #e8ffce; } </style> <script type="text/javascript"> var login; $(function() { //Логин $("#login").change(function(){ login = $("#login").val(); var expLogin = /^[a-zA-Z0-9_]+$/g; //Еще вариант для поля логин: " var expLogin = /^([a-z0-9_-]+\.)* [a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]{2,4}$/g; " var resLogin = login.search(expLogin); if(resLogin == -1){ $("#login").next().hide().text("Неверный логин").css("color","red").fadeIn(400); $("#login").removeClass().addClass("inputRed"); loginStat = 0; buttonOnAndOff(); }else{ $.ajax({ url: "register.php", type: "GET", data: "login=" + login, cache: false, success: function(response){ if(response == "no") { $("#login").next().hide().text("Логин занят").css("color","red").fadeIn(400); $("#login").removeClass().addClass("inputRed"); }else{ $("#login").removeClass().addClass("inputGreen"); $("#login").next().text("Логин свободен").css("color","green").fadeIn(400); } } }); loginStat = 1; buttonOnAndOff(); } }); $("#login").keyup(function(){ $("#login").removeClass(); $("#login").next().text(""); }); function buttonOnAndOff(){ if(loginStat == 1){ $("#submit").removeAttr("disabled"); }else{ $("#submit").attr("disabled","disabled"); } } }); </script> </head> <body> <form action="#" method="post"> <label><font color='red'>*</font> Ваш Логин:<br></label> <input name="login" type="text" size="50" id="login"> <span></span><br> </form> </body> </html> Юзер вводит логин и как только он переключается на следующее поле для заполнения срабатывает функция keyup(function() и рядом появляется надпись: логин занят либо логин свободен. Проверка на уникальность логина происходит через " ajax => какой-то документ => MySql ". Но есть загвоздка, над которой уже 2 дня ломаю голову. Если в это поле ввести к примеру " ivan " который уже имеется в MySql, вылезит соответствующая надпись " логин занят ", но если не переключаясь на другие поля стереть и снова ввести " ivan " то уже надписи никакой не вылазит. Помогите пожалуйста кто нибудь. Подскажите в какую сторону копать. Как исправить, или что добавить в уже имеющийся код что бы все работало по логике? По этой ссылке можно посмотреть скрипты в действии: http://cu99877.tmweb.ru/ Для пробы попробуйте ввести логин " naum ". Скрипты на бесплатном хостинге поэтому скопируйте ссылку в адр. строку ))
Если написали ivan потом стёрли и написали ivan, то не сработает событие on change, так как ничего не поменялось.
Где подробнее можно прочитать о событии " on change ". Что это такое и как с ним работать. А лучше если подскажете какую то альтернативу или как заставить это событие сработать при том что ничего не меняется?
Просто поискать или посмотреть в книге по JavaScript. Можно повесить событие on blur это потеря фокуса, как то так ждать и обрабатывать два события Код (Javascript): $( ".test" ).on( "change blur", ... );
http://htmlbook.ru/html/attr/onchange --- Добавлено --- http://www.w3schools.com/jsref/event_onchange.asp --- Добавлено --- http://www.w3schools.com/jsref/event_onchange.asp --- Добавлено --- https://learn.javascript.ru/events-change --- Добавлено --- возможно нужно смотреть в сторону события oninput --- Добавлено --- https://learn.javascript.ru/events-change#событие-input
Спасибо за ответы. Решил проблемку: Код (Text): $("#username").onchange(function(){ $("#username").removeClass(); $("#username").next().text(""); }); onchange ПОМОГ