先上代码/* 登录表单验证*/
    $('#login').validate(
        {
            errorClass: "error",
    rules:{
                logname:{required: true},
logpw:{required: true}
            },
    messages:{
logname:{required:"账号不能为空"},
logpw:{required:"密码不能为空"}
            },
    submitHandler: function(form)
                {
                   var params = $('#login').serialize();
                   alert(params); //关键地方,IE浏览器加上这句之后就能获取到传入的参数,没加的话获取的参数值都为NULL
                   jQuery.post('login',params,function(r){
                        var result = jQuery.parseJSON(r);
                        if(result.success == "true")
                           alert("success");
                        else
                        {
                           alert("fail");
                        }
                   })
                }
}
);
,
求大神指点,我用的是jquery.validate.min.js的表单插件,在提交表单的时候,FF和CHROM都能正常运行,但是在IE下,后台获取前台传入的参数确实NULL,但是在加上alert(params);之后,却可以正常获取到前台传入的值,这个是什么原因啊,弄了半天都不知道啥原因,跪求大神解决

解决方案 »

  1.   

    <script>
    $('#login').validate(
            {
                errorClass: "error",
            rules:{
                    logname:{required: true},
            logpw:{required: true}
                },
            messages:{
            logname:{required:"账号不能为空"},
            logpw:{required:"密码不能为空"}
                },
            submitHandler: function(form)
                    {
                       var params = $('#login').serialize();
       setTimeout(function(){
       jQuery.post('login',params,function(r){
    var result = jQuery.parseJSON(r);
    if(result.success == "true")
       alert("success");
    else
    {
       alert("fail");
    }
       })
       },3000)
                    }
                }
            );
      </script>改成这样试试~·
      

  2.   


    需要延迟加载一下post方法~·setTimeout设置3秒后执行post方法就行了~·