Я создал регистрационную форму для пользователей, чтобы заполнить их данные и отправить на регистрацию. Если некоторые поля пустые, имя пользователя недоступно или если электронное письмо этого пользователя уже зарегистрировано, под кнопкой отправки появляется предупреждение, останавливающее их процесс до тех пор, пока ошибки не будут исправлены.Функция Javascript не работает должным образом. edit
Ниже поля ввода email
и username
, есть промежуток идентификатор называется emailstatus
и unamestatus
, соответственно. Если имя электронной почты или имя пользователя уже зарегистрировано или недоступно, в этот промежуток времени сообщается сообщение, информирующее пользователя. Однако, отображается ли сообщение или нет, даже если нет ничего неправильного в информации пользователя, идентификатор диапазона status
всегда имеет сообщение «Пожалуйста, исправьте свои ошибки». который можно найти в функции javascript signup()
. Пожалуйста помоги.
HTML:
<p>Enter personal details</p>
//cleaned up code
<input id="email" onfocus="emptyElement('status')" onblur="checkemail()" onkeyup="restrict('email')" maxlength="88" type="text" class="form-control" placeholder="Email"><span id="emailstatus"></span>
<input id="username" type="text" onfocus="emptyElement('status')" onblur="checkusername()" onkeyup="restrict('username')" maxlength="16" class="form-control" placeholder="User Name">
<span id="unamestatus"></span>
<button id="signupbtn" onclick="signup();" class="btn btn-lg btn-login btn-block">Create Account</button>
<span style="font-weight:bold;" id="status"></span>
Javascript: Регистрация()
function signup(){
var u = _("username").value;
var e = _("email").value;
var status = _("status");
if(unamestatus.innerHTML.value != "" || emailstatus.innerHTML.value != ""){
status.innerHTML = "Please correct your errors.";
} else {
_("signupbtn").style.display = "none";
status.innerHTML = 'please wait ...';
var ajax = ajaxObj("POST", "registration.php");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
if(ajax.responseText != "signup_success"){
status.innerHTML = ajax.responseText;
_("signupbtn").style.display = "block";
location.href = "registration_success.php";
}
}
}
ajax.send("fn="+fn+"&ln="+ln+"&u="+u+"&e="+e+"&p="+p1+"&c="+c+"&g="+g);
}
}
Javascript: checkusername()
function checkusername(){
var u = _("username").value;
if(u != ""){
//_("unamestatus").innerHTML = 'checking ...';
var ajax = ajaxObj("POST", "registration.php");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
_("unamestatus").innerHTML = ajax.responseText;
}
}
ajax.send("usernamecheck="+u);
}
}
Javascript: checkemail()
function checkemail(){
var e = _("email").value;
if(e != ""){
//_("emailstatus").innerHTML = 'checking ...';
var ajax = ajaxObj("POST", "registration.php");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
_("emailstatus").innerHTML = ajax.responseText;
}
}
ajax.send("emailcheck="+e);
}
}
спагетти код :( –
хорошо, я уберу некоторые. @HappyCoding – Millica
Im не уверен, но я не люблю чек здесь. Unamestatus.innerHTML.value! = "" || emailstatus.innerHTML.value! = " «... он всегда будет выполняться для unamestatus.innerHTML.value, как false, null, что бы это ни было.Он только пропустит, если ваши промежутки фактически опустели.Так что я предлагаю вам очистить интервалы предупреждений после каждого представления и до проверки. –