2012-03-31 10 views
0

私は高低を検索して解決策を提示しませんでした。JQUERY:PreventDefaultを無視したIE9

ユーザーがサブミットボタンをクリックしたときにアクションを処理し、デフォルトのアクションをオーバーライドしたいと考えています.FirefoxとChromeは問題なく動作しますが、IE9ではフォームボタンをクリックするとページがデフォルトになります。 aspx(ASP.NETを使用していて、このコードをlocalhostで実行しています)。

/////////////////Submit Function///////////// 
$('#ARBB').submit(function (event) { 
    //e.cancelBubble is supported by IE - this will kill the bubbling process. 
    event.cancelBubble = true; 
    event.returnValue = false; 

    //e.stopPropagation works only in Firefox. 
    if (event.stopPropagation) { 
     event.stopPropagation(); 
     event.preventDefault(); 
    } 

    // initialize validator for a bunch of input fields 
    var inputs = $("#Contact :input").validator(); 

    // perform validation programmatically 
    //inputs.data("validator").checkValidity(); 

    $('#conf').load("/Confirmation.aspx"); 

    $.blockUI({ css: { 
     border: 'none', 
     padding: '15px', 
     backgroundColor: '#000', 
     '-webkit-border-radius': '10px', 
     '-moz-border-radius': '10px', 
     opacity: .5, 
     color: '#fff' 
    } 
    }); 

    setTimeout($.unblockUI, 500); 

    $("#accordion").accordion("enable"); 
    $("#accordion").accordion("option", "active", 3); 
    $("#CheckMark3").fadeIn("fast"); 
    $('html, body').animate({ 
     scrollTop: $("#Section3").offset().top 
    }, 500); 

}); 
/////////////////////////////////////////// 

EDIT/UPDATE

ロード関数が呼び出されたときにIE9がエラーを投げている:。

$( '#confに')、ロード( "/ Confirmation.aspx");

エラーは次のとおりです。

SCRIPT5:アクセスが拒否されました。

jqueryの - 1.6.2.js、行6244文字2

+0

"//e.stopPropagationはFirefoxでのみ動作します。"何だって?私はあなたの情報をどこから得るのか分かりませんが、間違っています。 – PeeHaa

答えて

2

jQueryライブラリがすでにあなたのために、ブラウザの違いの世話をします。すべてのブラウザを処理するために必要なものは、次のとおりです。

event.preventDefault(); 
+0

@ Guffa。私はすでにそれを試みました。 IE9はフォームを送信し、event.preventDefault()を無視します。 – user1265533

+0

IE9では 'event.returnValue = false'はどうですか? –

+0

@ user1265533:あなたのコードのどこかにエラーがあり、動作しないようにしています。それを行う正しい方法です、そしてそれを他の方法でやろうとすると、それはそれほど良くなりません。 – Guffa

1

このメソッドの最後にはfalseを入力しましたか?

$('#ARBB').submit(function (event) { 
    //e.cancelBubble is supported by IE - this will kill the bubbling process. 
    event.cancelBubble = true; 
    event.returnValue = false; 

    //e.stopPropagation works only in Firefox. 
    if (event.stopPropagation) { 
     event.stopPropagation(); 
     event.preventDefault(); 
    } 

    // initialize validator for a bunch of input fields 
    var inputs = $("#Contact :input").validator(); 

    // perform validation programmatically 
    //inputs.data("validator").checkValidity(); 

    $('#conf').load("/Confirmation.aspx"); 

    $.blockUI({ css: { 
     border: 'none', 
     padding: '15px', 
     backgroundColor: '#000', 
     '-webkit-border-radius': '10px', 
     '-moz-border-radius': '10px', 
     opacity: .5, 
     color: '#fff' 
    } 
    }); 

    setTimeout($.unblockUI, 500); 

    $("#accordion").accordion("enable"); 
    $("#accordion").accordion("option", "active", 3); 
    $("#CheckMark3").fadeIn("fast"); 
    $('html, body').animate({ 
     scrollTop: $("#Section3").offset().top 
    }, 500); 
return false; 
}); 
+0

ありがとうございます。いいえ運:( – user1265533

0

preventDefault() fire foxとchromeのためだけに機能します。ブラウザがpreventDefaultをサポートし、それが他の第二部を実行使用している場合

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

このコードのチェック: THIコードを試してみてください。

+0

ありがとうございました..いいえ運:( – user1265533

0

明らかに、私がロードしているページの上部に表示されるいくつかのCSSコード(Confirmation.aspx)に問題がありました。 CSSコードを削除した後は、アクセス拒否エラーが発生します。

関連する問題