2011-02-07 33 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; 
    } 
}); 

Tôi không hiểu - nó vẫn gửi biểu mẫu. Ai đó có thể vá mã của tôi và làm cho nó hoạt động được không?trả về false khi addEventListener gửi vẫn gửi biểu mẫu?

+0

kỳ quặc khác: Tôi có thể thêm thuộc tính onsubmit để tạo thành, và làm form.addEventListener, và cả hai dường như chạy. Đó có phải là lỗi trình duyệt không? – allyourcode

+0

Kỳ lạ khác: onsubmit = "return false;" không ngừng gửi biểu mẫu. – allyourcode

Trả lời

51

Bạn cần sử dụng phương thức preventDefault() của đối tượng sự kiện.

Lưu ý rằng không phải addEventListener() cũng không preventDefault() được hỗ trợ trong IE < = 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

cảm ơn sự giúp đỡ của bạn. – David

+1

và tôi hỏi tại sao tức là hút? – yossi

+1

@yossi: IE không có API tương đương. –

-1

các return false; nó làm việc trên function bind jQuery chỉ

Các vấn đề liên quan