Return false不适用于AJAX
Return false is not working AJAX
我的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
事件,而不是form
的submit
事件!
事实上,没有什么可以阻止表单提交。
相关文章:
- Jquery Ajax POST不工作.适用于GET
- Ajax成功回调仅适用于Chrome
- 使用ajax上传图片仅适用于png
- Ajax,Php-Postback仅适用于Firefox
- 如何在mvc中使用ajax jquery上传文件仅适用于IE9
- Javascript / Ajax适用于Mozilla firefox,但不适用于Google Chrome和IE
- 我的函数仅适用于 ajax 调用后的警报
- 从服务器读取的 ajax 文件 w3schools.com 示例适用于 IE9,但不适用于 FF12
- 如何让jQuery占位符/水印插件适用于ajax加载的文本字段
- Ajax 调用 IE8 不显示所有数据,适用于 Firefox 和 IE9
- 除了Fiddler之外,还有其他适用于IE8的ajax调试器吗
- Jquery Prepend动画只适用于AJAX一次
- Android混合应用程序:JQueryMobile ajax不适用于https,但适用于http
- Ajax函数仅适用于alert()
- 动态菜单的Ajax调用适用于first
- Jquery ajax适用于Chrome和Safari,但不适用于IE8和Firefox
- 在等待AJAX回调时更改image src:仅适用于Firefox
- Ajax php登录只适用于alert();
- Ajax适用于Firefox,但不适用于Internet Explorer-需要更新XML文件-未收到错误消息
- 对 php 服务的经过身份验证的 AJAX 请求(适用于 Wordpress)