2011-02-07 12 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 पर वापसी झूठी सबमिट अभी भी फॉर्म जमा करता है?

+0

एक और विषमता: मैं, ऑनसबमिट विशेषता के रूप में जोड़ सकते हैं और form.addEventListener करें, और वे दोनों दौड़ने लगते हैं। क्या यह एक ब्राउज़र बग है? – allyourcode

+0

एक और विषमता: onsubmit = "झूठी वापसी;" प्रपत्र सबमिट करने से रोकता है। – 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: आईई का अपना समकक्ष एपीआई है। –

-1

का समर्थन कर रहे return false; यह jQuery बाँध समारोह पर काम केवल

संबंधित मुद्दे