form表单使用onsubmit()返回false时为什么form表单还是提交了

qq_31277359 2015-09-21 07:40:19
<form action="${pageContext.request.contextPath }/customer/addCustomer" method="post" onsubmit="return checkCname11()">

函数是:function checkCname11(){
$.post(
"customer/checkCname",
{cname:$("#cname").val()},
function(data){
if(data==""){
return true;
}else{
alert(data);
return false;
}
}
);
}

alert(data)都已经出来了,但是form表单还是提交了,为什么啊?
...全文
847 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
改成同步提交呢
回复
if(data==""){
return true;
}else{
alert(data);
return false;
}
这里是回调函数,不是onsubmit的,这几行语句执行的时候post已经执行完了。 改成这样试试,是不是就不提交了。
function checkCname11(){
return false;
$.post(
"customer/checkCname",
{cname:$("#cname").val()},
function(data){
if(data==""){
return true;
}else{
alert(data);
return false;
}
}
);
}
回复
lb15337109899 2015-09-28
return false 怎么在你的ajax的回调里面写,在你当前方法的最后面写
回复
从小就很呆 2015-09-26
ajax异步请求代码等于重新发送了一个http请求,下面的js代码会继续执行,两个不互相干扰,只是你的前一个请求返回的页面有点慢,早点返回了你都不会看到alert
回复
a327369238 2015-09-26
引用 6 楼 a327369238 的回复:
提交(submit)的话是会执行action的吧
额,看楼上的几位明白了
回复
a327369238 2015-09-26
提交(submit)的话是会执行action的吧
回复
sunhuwh 2015-09-26
你看一下页面上提交按钮是否设置成type为submit
回复
zkc1992 2015-09-25
把onsubmit改成onclick
回复
Spring89 2015-09-21
ajax时return false 的function与onsubmit()不是同一个函数;ajax默认采用的是async=true,在页面发起request到server,等待response时,会继续执行其它脚本! 你可以尝试把async设为false,问题应该就解决了!
回复
满院落梅香 2015-09-21
function(data){ var flag; if(data==""){ flag= true; }else{ alert(data); flag= false; } return flag; } ); } 设置一个变量,最后返回变量的布尔值试试
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-09-21 07:40
社区公告
暂无公告