2012-01-25 31 views
6

Tôi có một biểu mẫu có các yếu tố đầu vào (có id). Và tôi cần phải ràng buộc một sự kiện để nhấp vào bất kỳ đầu vào nào trong biểu mẫu này.Làm thế nào để ràng buộc một sự kiện cho tất cả các yếu tố đầu vào của biểu mẫu?

Bây giờ, tôi sử dụng xây dựng này:

$("#siteAdress").click(function(){ 
     $("#reg-login").click(); 
    }); 
    $("#phoneNumber").click(function(){ 
     $("#reg-login").click(); 
    }); 
    $("#reg-email").click(function(){ 
     $("#reg-login").click(); 
    }); 
    $("#reg-login").click(function(){ 
     // DO SOMETHING 
    }); 

Làm thế nào để tối ưu hóa nó?

Trả lời

14

Cách đơn giản nhất có lẽ là để thêm một lớp học để tất cả các yếu tố mà bạn cần để ràng buộc trên, và sử dụng nó:

$(".event-user").click(function() { /* do something */ }) 

Nếu đây không phải là một lựa chọn, bạn có thể sử dụng một id cho mẫu của bạn, và truy vấn tất cả trẻ em đầu vào của nó:

$("#my-form input[type=text]").click(function() { /* do something */ }) 

và nếu không phải là có thể, bạn luôn có thể sử dụng một danh sách bằng dấu phẩy của selectors:

$("#siteAddress, #phoneNumber, #reg-email, #reg-login") 
    .click(function() { /* do something */}) 
1

Sử dụng này

$("form input:text").click(function(){ 
    $("#reg-login").click(); 
}); 
2

Tùy thuộc vào loại đầu vào mà bạn có, bạn có thể làm điều đó một cách rộng rãi hoặc phạt tiền hạt nó. Ví dụ, nếu tất cả họ đang input yếu tố loại, chỉ làm điều đó một cách rộng rãi:

$('input').click(function(){ ... }); 

Ngược lại, nếu bạn muốn làm điều đó đặc biệt cho các loại nhập văn bản, ví dụ, bạn có thể làm điều này:

$('input[type="text"]').click(function(){ ... }); 

Đó là tất cả trong bộ chọn! Hy vọng điều này sẽ giúp ...

1

Bạn nên sử dụng dấu> chung. Có nghĩa là bạn có thể lấy id biểu mẫu và sau đó với một dòng nối chức năng nhấp vào tất cả trẻ em:

$('#formId > input').each(function() { 
    $(this).click(function() { 
     //SOME CODE - btw you can ge the value with this.value; 
    }) 
}); 

hy vọng điều này sẽ hữu ích.

1
$('form input').click(function (e) { 
      SearchForm();//Call function you want 
      return false; 
     }); 

    $('form input').keypress(function (e) { 
      SearchForm();//Call function you want 
      return false; 
    }); 
Các vấn đề liên quan