2011-10-16 24 views
8

Tôi nhận được một nút: Javascript: Cách loại bỏ loại đầu vào = gửi về hành vi nhấp chuột?

Bất cứ khi nào tôi nhấp vào nó, nó sẽ gửi đến biểu mẫu.

Tôi muốn chiếm đoạt hành vi này, vì vậy khi tôi nhấp vào, nó gọi hàm JS thay thế. Làm thế nào để tôi làm điều này? Tôi đã thêm:

$('input.submit').live('click', addFood); 

Sự cố vẫn được gửi đến biểu mẫu. Khi tôi xóa "type =" submit ", nó hoạt động.

Tôi không muốn xóa mã HTML. Nó cũng bị ràng buộc với CSS và tôi không muốn thay đổi CSS vì tôi sợ làm rối tung nó lên =)

vì vậy, câu hỏi là: làm thế nào để thay đổi hành vi của nút gửi để nó không nộp để hình thành nhưng gọi hàm Javascript (JQuery) tôi

+1

Rất tiếc, tôi chỉ nhận ra tôi cần một người "return false" trong chức năng addFoods của tôi, nếu không nó gọi hàm và nộp cho biểu mẫu. Đã giải quyết được vấn đề! Off to bed =) –

+2

Hisoka: được rồi trả lời câu hỏi của bạn. –

Trả lời

14

Target hình thức thay vào đó, không phải là gửi nút

$("form").submit(function(e) { 

    e.preventDefault(); 
    e.returnValue = false; 

    // do things 
}); 
+3

Giải pháp này không được chấp nhận trong Jquery 1.7 – cromanelli

10

Chỉ để giữ cho câu trả lời này được cập nhật thay đổi:

$("form").live('submit', function(e) { 

e.preventDefault(); 
e.returnValue = false; 

// do things 

});

với:

$("form").on('submit', function(e) { 

e.preventDefault(); 
e.returnValue = false; 

// do things 

});

$ (bộ chọn) .live() không được chấp nhận trong Jquery 1.7 và bị xóa khỏi khung trong Jquery 1.9.

Here's các documentation

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