jQuery表单在IE8中提交发布到新页面而不是阻止它

时间:2012-07-03 01:52:47

标签: jquery

全部, 我有以下jQuery代码:

jQuery("#data_form").submit(function() {
    event.preventDefault();
    alert("it submits");
});

当我在Chrome中提交表单时,它可以正常工作,但不适用于IE8。我试图将代码更改为:

jQuery("#data_form").submit(function(e) {
    e.preventDefault();
    alert("it submits");
});

然而,这仍然发布页面。关于如何使这个代码在IE8中工作的任何想法?

***编辑:我试图在这里简化代码的可读性。但是我尝试了下面的答案,但它还没有奏效。这是完整的代码:

jQuery("#event_form").submit(function(e) {
    e.preventDefault();
    jQuery("#results").html('');
    already_submitted = jQuery("#check_submission").val();
    create_yes_no = jQuery("#create_yes_no").val();
    if(already_submitted!="yes" && create_yes_no=="yes" ){
    jQuery.post(site_url + "save_event_form.php", jQuery(this).serialize(),
        function(data) {
            //alert("Data Loaded: " + data);
            var results = jQuery("#results");
            results.html(data+"<br><br>");

            results.show(); // re-display the div
            setTimeout(function(){ // then fade it out....
              results.fadeOut();
            }, 5000); // ...after 5 seconds
            jQuery("#check_submission").val("yes");
        });
    }else if(create_yes_no!="yes"){
    jQuery.post(site_url + "save_event_form.php", jQuery(this).serialize(),
        function(data) {
            //alert("Data Loaded in the create yes or no yes: " + data);
            var results = jQuery("#results");
            results.html(data+"<br><br>");

            results.show(); // re-display the div
            setTimeout(function(){ // then fade it out....
              results.fadeOut();
            }, 5000); // ...after 5 seconds
        });
    }else{
        alert("You already submitted this user once. Refresh the page to add another one.");
    }
    return false;
});

谢谢!

1 个答案:

答案 0 :(得分:1)

event.preventDefault在IE8中不起作用。我将其更改为此代码,现在效果很好:

if(event.preventDefault){
    event.preventDefault();
}else{
    event.returnValue = false;
}