繁体   English   中英

JavaScript函数无法正常运行。 编辑

[英]Javascript function not working properly. edit

我已经创建了一个注册表单,供用户填写其数据并提交注册。 如果某些字段为空,用户名不可用,或者该用户的电子邮件已经注册,则“提交”按钮下方会显示一条警告,中止他们的过程,直到他们的错误得到纠正。

emailusername输入框unamestatus ,分别有一个跨度ID,分别称为emailstatusunamestatus 如果电子邮件或用户名已经注册或不可用,则会在该范围内放置一条消息通知用户。 但是,无论是否显示该消息,即使用户信息没有问题,span id 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:signup()

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);
    }
}

您的问题在这里:

} else if(unamestatus.innerHTML.value != "" || emailstatus.innerHTML.value != ""){
    status.innerHTML = "Please correct your errors.";
}

innerHTML没有value属性。 采用,

} else if(unamestatus.innerHTML != "" || emailstatus.innerHTML != ""){
    status.innerHTML = "Please correct your errors.";
}

相反,有更好的方法可以做到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM