2012-01-12 28 views
6

Tôi đã sau nút gửi:event.preventDefault() làm việc trong Chrome, Firefox không cho một nút gửi

<input type="submit" name="submit" value="Send" class="mybutton" /> 

Khi tôi sử dụng đoạn mã sau

$(document).ready(function(){ 
     $("#submit").submit(function(){ 
       event.preventDefault(); 
       console.log('test'); 
     } 
}); 

trang của tôi là làm mới trong Firefox, nhưng không phải Chrome. ai đó có thể chỉ cho tôi phương hướng đúng không?

Tôi muốn sử dụng nút gửi cho một jQuery ajax gọi (không phải là một hình thức thường xuyên nộp)

Trả lời

18

Bạn cần chắc chắn rằng bạn thêm event vào danh sách tham số của hàm sự kiện. Tôi nghĩ rằng một số trình duyệt có toàn cầu event, đó là lý do tại sao nó hoạt động trong một số trình duyệt.

$(document).ready(function(){ 
    $("#submit").submit(function(event){ // The event is passed to this function 
     event.preventDefault(); 
     console.log('test'); 
    } 
}); 
+0

+1 Câu trả lời duy nhất mà đặt 'event' tại địa điểm chính xác: p –

+1

Trí tuệ tuyệt vời ... Tôi khá mới trong việc viết mã. Sự kiện phải được thông qua khi gửi, chứ không phải trên tài liệu đã sẵn sàng, đúng không? – dyelawn

+4

Đối tượng 'event' toàn cục (' window.event') là một điều Microsoft. Chrome ném một đoạn mã vào mã được viết cho IE. Firefox thì không. :-) –

0

Bạn không thêm sự kiện vào tham số chức năng.
phiên bản cố định:

$(document).ready(function(){ 
     $("#submit").submit(function(event){ 
       event.preventDefault(); 
       console.log('test'); 
     } 
}); 
+1

Bạn đặt 'sự kiện' vào sai chức năng. :-P –

+0

@Rocket, cố định allready, Cảm ơn, tôi thấy tôi không phải là người duy nhất, Ông sao chép từ tôi ... =) lol – gdoron

3

Vượt qua tham số sự kiện trong hàm callback Hãy thử điều này

$(document).ready(function(){ 
     $("#submit").submit(function(event){ 
       event.preventDefault(); 
       console.log('test'); 
     } 
}); 
+1

Bạn đặt 'sự kiện' trong chức năng sai. :-P –

+0

@Rocket - Sửa chữa nó để loại bỏ các downvote? – ShankarSangoli

+0

Tôi đã không downvote bạn. –

7

bạn đã thử qua sự kiện này thông qua như là một biến?

$(document).ready(function(){ 
    $("#submit").submit(function(e){ 
      e.preventDefault(); 
      console.log('test'); 
    } 
}); 
+3

Câu trả lời này có phiếu bầu của tôi để sử dụng tên biến khác với sự kiện, để cho thấy rằng nó không thực sự cần thiết để gọi nó là sự kiện. – Dismissile

+0

@Dismissile: Đồng ý, bạn có thể đặt tên cho nó bất cứ điều gì bạn thích :) –

1

Đơn giản chỉ cần trong hàm onclick cho nút gửi viết ra như thế này

onclick="return myfunction();" 

và bên trong các báo cáo chức năng

myfunction() { 
return false;}; 
Các vấn đề liên quan