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表单还是提交了,为什么啊?
...全文
1018 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
改成同步提交呢
  • 打赏
  • 举报
回复
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; } ); } 设置一个变量,最后返回变量的布尔值试试

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧