preventDefault无法在IE中运行

时间:2010-10-09 21:48:15

标签: jquery forms

我正在尝试使用ajax提交表单,表单本身是通过ajax事件加载的

以下Jquery代码适用于FF?chrome。在IE中,不阻止表单提交

$("#admin_main").delegate("#create_user_form", "submit", function (event) {
    if (event.preventDefault) {
        event.preventDefault();
    } else {
        event.returnValue = false;
    }
    $.post('create_user', $("#create_user_form").serialize(), function (data) {
        $("#admin_main").html(data);
    }, "html");
});

有任何解决方法吗?

1 个答案:

答案 0 :(得分:2)

jQuery对此进行规范化,您可以可靠地调用.preventDefault(),如下所示:

$("#admin_main").delegate("#create_user_form", "submit", function (event) {
  event.preventDefault();
  $.post('create_user', $("#create_user_form").serialize(), function (data) {
    $("#admin_main").html(data);
  }, "html");
});

或者如果你想完全杀死这个事件,return false

$("#admin_main").delegate("#create_user_form", "submit", function () {
  $.post('create_user', $("#create_user_form").serialize(), function (data) {
    $("#admin_main").html(data);
  }, "html");
  return false;
});

调用它不是问题的原因是因为它不是您正在处理的特定于浏览器的事件对象,它是具有规范化行为的jQuery event object