2011-02-07 16 views
34
var form = document.forms[0]; 
form.addEventListener("submit", function(){ 
    var email = form.elements['answer_13829'].value; 
    if(email == '[email protected]') { 
    alert('redirecting the user...'); 
    window.location = 'xxxx'; 
    return false; 
    } 
}); 

私は理解していません - まだフォームを送信します。誰かが自分のコードにパッチを当てて動作させることはできますか?addEventListenerにfalseが返されても、依然としてフォームが送信されますか?

+0

別の風変わり:私は、形成するためのonSubmit属性を追加することができますし、 form.addEventListenerを実行すると、両方とも実行されているように見えます。それはブラウザのバグですか? – allyourcode

+0

別の奇妙な点:onsubmit = "return false;"フォームの送信を停止します。 – allyourcode

答えて

51

イベントオブジェクトのpreventDefault()メソッドを使用する必要があります。

addEventListener()preventDefault()どちらも= 8

var form = document.forms[0]; 
form.addEventListener("submit", function(evt){ 
    var email = form.elements['answer_13829'].value; 
    if(email == '[email protected]') { 
    evt.preventDefault(); 
    alert('redirecting the user...'); 
    window.location = 'xxxx'; 
    } 
}); 
+0

あなたのご協力ありがとうございます。 – David

+1

と私はなぜ、つまり吸うか? – yossi

+1

@yossi:IEには、それと同等のAPIがあります。 –

-1

IE <でサポートされていることをreturn false; それだjQueryのbind関数の作業のみ

関連する問題