0

所有,我有以下 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;
});

谢谢!

4

1 回答 1

1

event.preventDefault 在 IE8 中不起作用。我把它改成了这段代码,现在效果很好:

if(event.preventDefault){
    event.preventDefault();
}else{
    event.returnValue = false;
}
于 2012-07-03T02:36:37.130 回答