Return false不适用于AJAX

Return false is not working AJAX

本文关键字:AJAX 适用于 不适用 false Return      更新时间:2023-09-26

我的index.htm 中有这个

<form>
<input onkeyup="firstnamecheck(this.value)" type="text" name="firstname" id="Start" class="Inputs" />
<button type="submit" name="Murad"  id="tester"title="Register" >Register</button>
</form>

在reg.js 中

function firstnamecheck(str) {
    if (str.length == 0) { 
        document.getElementById("firster").innerHTML = "";
        return false;
    }else if(3>str.length>0){
        document.getElementById("firster").innerHTML = "Firstname should be more than 3 charachters";
        return false; 
    }else if(str.length>30){
        document.getElementById("firster").innerHTML = "Firstname should be less than 30 charachters";
       return false; 
    } else {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("firster").innerHTML = xmlhttp.responseText;
            }
        };
        xmlhttp.open("POST", "era.php?f=" + str, true);
        xmlhttp.send();
    }
}

但即使它给出错误,我仍然可以提交表格,即使有返回错误。

类似的复合范围比较

if(3>str.length>0)

不适用于JavaScript,或大多数(但不是全部!)语法源自B的其他语言(C、C++、C#、D、Java、JavaScript等)。

相反,您必须分别列出两个比较:

if (3 > str.length && str.length > 0)

除了@TJCrowder的答案之外,还有可能更重要的东西:

您的return false;将转到input元素的onkeyup事件,而不是formsubmit事件!

事实上,没有什么可以阻止表单提交。

相关文章: