$.post("userAdd!verifyUserName",{"username":username.val()},function(map){
if(map.bool){
errorusername.html("用户名已存在!");
return false;
}else{
errorusername.html("用户名可以使用!");
}
});
------------------------------------------------------
上面这段代码是做前后台的一个用户名验证的,大家看到 我在做的时候return false 了不过是在回调函数里做的处理,我发现这样做的话还是可以提交的 我表单的写法是这样的 onclick="return doSubmit()"
其他的判断都好使 就是这个回调回来后的return false 不好使 求解
--------------------下面是我改动后的----------------------------------------
var bool=true;
$.post("userAdd!verifyUserName",{"username":username.val()},function(map){
if(map.bool){
errorusername.html("用户名已存在!");
bool=false;
}else{
errorusername.html("用户名可以使用!");
}
});
alert(bool);
return bool;
------------------------------------
我发现弹出的竟然是true 求解决方案 如何能让它 不提交表单呢 .....
map 是否= Null
map.bool 是True Or False
map 不是null 已经取值了 map.bool 是我在后台做的判断传到前台了 也可以取到值
你这个是异步方式提交的 懂吗
多线程懂吗
就是你这边在提交
那边继续做新增用户的操作
等你提交结果返回来
那边就已经新增好用户了
我知道啊 但是有没有解决方案呢 得到的结果不让它提交表单呢
@刺风专属: 呵呵 自己找到就好 刚睡醒 准备发你,,
找到解决方案了
function isUserNameExist(){
var username = $("#username");
var errorusername = $("#errorusername");
$.ajax({
async : false, //同步
cache : true,
type : 'POST',
dataType : "json",
data : {"username":username.val()},
url : "userAdd!verifyUserName",// 请求的action路径
error : function() {// 请求失败处理函数
},
success : function(map) {
if(map.bool){
errorusername.html("用户名已存在!");
isNameExist=false;
}else{
errorusername.html("用户名可以使用!");
}
}
});
}
不懂,楼主你想做什么么?让ajax同步提交……
你是想根据结果取消提交????回调函数是在提交之后,服务器响应后才会执行的……
你想取消ajax,可以这样
var xhr=$.ajax({});
xhr.abort();
楼主没搞明白异步提交,回调函数是这么回事啊
<script type="text/javascript"> $(document).ready(function() { $.ajaxSetup({ async: false }); }); </script>
在上下文中添加如上配置,使当前页面的ajax提交方式改为同步模式。