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 に答える