浅析onsubmit校验表单时利用ajax的return false无效问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了浅析onsubmit校验表单时利用ajax的return false无效问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1420字,纯文字阅读大概需要3分钟。
内容图文
代码如下:/**
* 表单提交校验
**/
function onSubmit(){
if($('#name').val().length<2){
alert("名称请不少于两个汉字");
return false;
}
var t = new Date().getTime();
$.ajax({
type: "POST",
url: "/users/checkrepeat/",
data: "name=" + $('#name').val() + "&time=" + t,
success:function(res){
if(res == 'exists'){
alert("名称已存在,请修改.");
return false;
}
}
});
}
问题原因:
1. ajax时return false 的function与onsubmit()不是同一个函数;
2. 在ajax执行时,async默认的设置值为true,这种情况为异步方式,就是说当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程,ajax块发出请求后一个线程 和ajax块后面的脚本(另一个线程)。
修改后的代码:
代码如下:
/**
* 表单提交校验
**/
function onSubmit(){
if($('#name').val().length<2){
alert("名称请不少于两个汉字");
return false;
}
var flag = true;
var t = new Date().getTime();
$.ajax({
type: "POST",
async:false, // 设置同步方式
cache:false,
url: "/users/checkrepeat/",
data: "name=" + $('#name').val() + "&time=" + t,
success:function(res){
if(res == 'exists'){
alert("名称已存在,请修改.");
flag = false;
}
}
});
if(!flag)
return false;
内容总结
以上是互联网集市为您收集整理的浅析onsubmit校验表单时利用ajax的return false无效问题全部内容,希望文章能够帮你解决浅析onsubmit校验表单时利用ajax的return false无效问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。