2012-01-25 12 views
6

Mam formularz z wejściami (z identyfikatorami). I muszę powiązać jedno zdarzenie, aby kliknąć dowolne wejście w tym formularzu.Jak powiązać zdarzenie dla wszystkich danych wejściowych formularza?

Teraz używam tej budowy:

$("#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 
    }); 

Jak zoptymalizować go?

Odpowiedz

14

Najprostszym sposobem jest prawdopodobnie dodać klasę do wszystkich elementów potrzebnych do związania na i użyć go:

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

Jeśli nie jest to opcja, można użyć id dla swojej postaci, i zbadać wszystkie jego dzieci wejściowe:

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

a jeśli nie jest to możliwe, zawsze można skorzystać z listy oddzielonych przecinkami selektorów:

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

Użyj tego

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

zależności od typów wejść trzeba, można to zrobić szeroko lub drobnoziarniste go. Na przykład, jeśli są wszystkie elementy typu input, po prostu zrób to szeroko:

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

W przeciwnym razie, jeśli chcesz to zrobić specjalnie dla typów wprowadzania tekstu, na przykład, można to zrobić:

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

Wszystko w selektorach! Mam nadzieję, że to pomoże ...

1

Powinieneś użyć ogólnego znaku>. Oznacza to, że można uzyskać identyfikator formularza, a następnie jednym wierszem dołączyć funkcję kliknięcia do wszystkich dzieci:

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

mam nadzieję, że to pomoże.

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; 
    }); 
Powiązane problemy