首页 新闻 会员 周边

Jquery 中$.post方法中禁止提交表单的一些困惑,求解...

0
悬赏园豆:10 [待解决问题]

$.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  求解决方案 如何能让它 不提交表单呢 .....

刺风专属的主页 刺风专属 | 菜鸟二级 | 园豆:206
提问于:2013-05-21 11:12
< >
分享
所有回答(6)
0

map 是否= Null

map.bool  是True Or False

@@@一统@@@ | 园豆:1551 (小虾三级) | 2013-05-21 12:36

map 不是null  已经取值了  map.bool 是我在后台做的判断传到前台了   也可以取到值

支持(0) 反对(0) 刺风专属 | 园豆:206 (菜鸟二级) | 2013-05-21 12:38
0

你这个是异步方式提交的 懂吗 
多线程懂吗

就是你这边在提交

那边继续做新增用户的操作

等你提交结果返回来

那边就已经新增好用户了

丫的 | 园豆:1575 (小虾三级) | 2013-05-21 13:01

我知道啊  但是有没有解决方案呢  得到的结果不让它提交表单呢

支持(0) 反对(0) 刺风专属 | 园豆:206 (菜鸟二级) | 2013-05-21 13:04

@刺风专属: 呵呵 自己找到就好 刚睡醒 准备发你,,

支持(0) 反对(0) 丫的 | 园豆:1575 (小虾三级) | 2013-05-21 13:30
0

找到解决方案了

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("用户名可以使用!");
                }
        }
    });
    
    
}

刺风专属 | 园豆:206 (菜鸟二级) | 2013-05-21 13:26
0

不懂,楼主你想做什么么?让ajax同步提交……

你是想根据结果取消提交????回调函数是在提交之后,服务器响应后才会执行的……

 

你想取消ajax,可以这样  

var xhr=$.ajax({});

xhr.abort();

滴答的雨 | 园豆:3660 (老鸟四级) | 2013-05-21 13:50
0

楼主没搞明白异步提交,回调函数是这么回事啊

骷髅人 | 园豆:464 (菜鸟二级) | 2013-05-21 16:42
0
    <script type="text/javascript">
        $(document).ready(function() {
            $.ajaxSetup({
                async: false
            });  
        });
    </script>

在上下文中添加如上配置,使当前页面的ajax提交方式改为同步模式。

Eric.luo | 园豆:853 (小虾三级) | 2013-05-21 17:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册