提交ajax帖子的Jquery需要在IE中点击两次

时间:2015-06-08 21:01:10

标签: jquery ajax internet-explorer post

我无法解释以下内容:

我有以下代码。此代码在Firefox和Chrome中运行良好,但在IE中,用户必须按两次“提交”按钮才能登录。

file example1.js

git pull --rebase

在一个单独的js文件中,我有:

$(document).ready(function(){

$('body').on("submit", "#signinForm", function( event ) {
    event.preventDefault(); 
    target = (event.currentTarget) ? event.currentTarget : event.srcElement;
    bp_ajax(callback_login_succes, target);
});

var callback_login_succes = function(data, textStatus, xhr) {

    $(jQuery.parseJSON(JSON.stringify(data))).each(function() {  
        if (this.code !== 'success') {
            // give the response to a validate function         
            bp_validate(data);
        } else {
            // success so redirect
            setTimeout("document.location.href='/"+lang+"/index/';",0); 
        }
    });

}
});

HTML

var bp_ajax = function(cb, form) {
$.ajax({
    type: 'post',
    url: '/ajax/validation.php',
    data: $(form).serialize(),
    success: cb
});
}

2 个答案:

答案 0 :(得分:1)

不确定为什么会发生这种情况,但一些建议可能有助于清理它

  1. click而非#btnSignin
  2. 上收听submit
  3. 使用type="submit"替换按钮上的type="button"(不会尝试提交表单,因此您不必取消活动)
  4. 从事件点击处理程序中删除event.preventDefault()。
  5. 通过这种方式,您不会编写提交表单的按钮,然后进行编码以使其不这样做 - 您只需编写一个按钮即可在单击时触发事件。

答案 1 :(得分:0)

您尝试添加:   contentType:“application / json; charset = utf-8”