2012-01-25 11 views
6

Tengo un formulario con entradas (con id). Y necesito vincular un evento para hacer clic en cualquier entrada de esta forma.¿Cómo vincular un evento para todas las entradas de formulario?

Ahora, yo uso esta construcción:

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

Cómo optimizarlo?

Respuesta

14

La forma más sencilla es probablemente agregar una clase a todos los elementos que necesita para unirse a, y lo utilizan:

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

Si esto no es una opción, se puede usar un id para su formulario, y consultar a todos sus hijos de entrada:

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

y si ninguno es posible, siempre se puede utilizar una lista separada por comas de los selectores:

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

Utilice esta

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

Dependiendo de los tipos de entradas que tenga, puede hacerlo de forma genérica o de grano fino él. Por ejemplo, si son todos elementos de tipo input, sólo lo hacen en términos generales:

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

De lo contrario, si desea hacerlo específicamente para los tipos de entrada de texto, por ejemplo, se puede hacer esto:

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

¡Todo está en los selectores! Espero que esto ayude ...

1

Debe usar el signo> general. Lo que significa que puede obtener el formulario de identificación y luego con una línea añadir la función de clic a todos los niños:

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

esperanza esto ayuda.

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; 
    }); 
Cuestiones relacionadas