问题描述
- submit提交表单出现问题!!!
-
var value = $('#testDept').val(); if(value!=""){ $.ajax({ url:"deptIsExit", type:"post", data:{"deptValue":value}, success:function(data){ $('#message').html(data.result.message); if(data.result.isExit){ return true; } } }); }else { $('#message').html("不能为空!"); return false; } } function checkit(){ if(isExit()){ return true; } return false; }
这个是个form表单,里面的onsubmit,ajax已经传递值,并且比较也正确,正常应该return true,方法就结束了,但是,往下执行了return false。导致我表单一直提交不了!!!这里本人确定值传递进去,并且比较完毕,返回的也是true!!但就是,方法没结束,怎么回事????调试结果是直接全部都执行了!没有跳过中间的return true!!!
里面改成了加上了同步标我现在要的示,true。还是不正确!!我现在要的效果是,根绝ajax返回的信号,确定表单是否提交!!但是现在,返回的是true也不提交!!哪里出了问题?????????????
解决方案
var flag = false;//加标记位
var value = $('#testDept').val();
if(value!=""){
$.ajax({
url:"deptIsExit",
type:"post",
data:{"deptValue":value},
success:function(data){
$('#message').html(data.result.message);
if(data.result.isExit){
flag= true;//不然返回的是success的结果,不是整个函数的结果
}
}
});
}else {
$('#message').html("不能为空!");
}
return flag
}
解决方案二:
success中的return是那个匿名函数的返回,不是外侧主函数的返回!
解决方案三:
ajax要改为同步,并且不能再回调里面return 返回值,那个返回值不是isExit的返回值
var rst=false;//////////////////
var value = $('#testDept').val();
if(value!=""){
$.ajax({
url:"deptIsExit",
type:"post",
data:{"deptValue":value},
success:function(data){
$('#message').html(data.result.message);
if(data.result.isExit){
rst= true;//////////////////////////
}
}
});
}else {
$('#message').html("不能为空!");
// return false;
}
return rst;//////////////////////////
解决方案四:
改为同步
async:false
时间: 2024-11-10 01:01:30