2009-07-16 36 views
6

Tôi có 3 hộp văn bản và trên sự kiện keyup cho cả 3, tôi muốn gọi cùng một chức năng?JQuery, liên kết cùng một hàm với 3 sự kiện khóa hộp văn bản khác nhau

Trong đoạn mã dưới đây, tôi đang Tring để ràng buộc keyup sự kiện để CalculateTotalOnKeyUpEvent chức năng để một textbox tên compensation, nhưng nó không hoạt động:

$("#compensation").bind("keyup", CalculateTotalOnKeyUpEvent(keyupEvent)); 

function CalculateTotalOnKeyUpEvent(keyupEvent) { 
    var keyCode = keyupEvent.keyCode; 
    if (KeyStrokeAllowdToCalculateRefund(keyCode)) { 
    CalculateTotalRefund(); 
    } 
}; 

Trả lời

12

Bạn cần làm như thế này:

// Edit according to request in the comment: 
// in order to select more than one element, 
// you need to specify comma separated ids. 
// Also, maybe you need to consider to use a CSS class for the selected elements, 
// then it could be just $(".className") 
$("#element1, #element2, ....").bind("keyup", CalculateTotalOnKeyUpEvent); 

Bạn cần chuyển hàm này làm tham số, bạn không cần phải chuyển hàm như được khai báo.

+0

+1 đánh bại tôi với nó. – geowa4

+0

có lẽ nên chiếu sáng trên làm thế nào để có được tất cả ba hộp văn bản mặc dù. – geowa4

+0

Bạn, đúng, tôi chỉ không muốn làm điều đó, vì có một câu trả lời sau tôi đã chỉ ra điều đó. –

5
$("#txt1, #txt2, #txt3").keyup(fn); 
0

Bạn đang gọi số CalculateTotalOnKeyUpEvent ngay lập tức, không chuyển nó làm đối số. Hãy thử điều này:

$("#compensation").bind("keyup",CalculateTotalOnKeyUpEvent); 
0
$("#compensation").bind("keyup",CalculateTotalOnKeyUpEvent(keyupEvent)); 

Khi bạn viết CalculateTotalOnKeyUpEvent (keyUpEvent) [chú ý() sau tên hàm], bạn đang thực hiện các CalculateTotalOnKeyUpEvent và gán kết quả của hàm để chìa khóa lên sự kiện.

Bạn nên làm một cái gì đó như thế nào,

$('#compensation, #otherId1, #otherId2') 
    .bind('keyup', CalculateTotalOnKeyUpEvent); 

đâu otherId1 'và 'otherId2' là id của hai textbox hơn.

2

hoặc chỉ cung cấp cho tất cả 3 hộp văn bản cùng một lớp và bạn tốt để đi

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