jquery
2010-02-26 5 views 2 likes 
2

Salut Comment ajouter un événement à plusieurs champs de même forme.Comment ajouter un événement à plusieurs champs de même champ

Dans le code suivant, je souhaite également ajouter l'événement keypress à userName.

$("#existingUserForm :input[name='userPassword']").keypress( 
     function(e) {  
     if(e.which == 13) { 
      processLogin(); 
     } 
    }); 

Répondre

2
$("#existingUserForm :input[name='userPassword'], #existingUserForm :input[name='userName'] ").keypress( 
    function(e) {  
     if(e.which == 13) { 
      processLogin(); 
     } 
}); 

Lisez la documentation à propos de multiple selectors.

2

Vous pouvez utiliser la méthode add() pour ajouter des éléments à votre sélection:

$('#existingUserForm :input[name=userPassword]') 
    .add('#existingUserForm :input[name=userName]') 
    .keypress(function() { ... 

Vous pouvez également enchaîner plusieurs sélecteurs à l'intérieur d'une $() clause en les séparant par des virgules, mais la méthode add() est généralement mieux pour la lisibilité.

Vous pouvez également utiliser filter():

$('#existingUserForm input').filter(function() { 
    var name = $(this).attr('name'); 
    return name == 'userPassword' || name == 'userName'; 
}).keypress(function() { ... 

méthode la plus simple serait de donner les éléments de la même classname, votre sélecteur simplifierait à:

$('#existingUserForm .checkField').keypress(function() {... 

... étant donné que vos entrées sont quelque chose comme ceci:

<input name="userName" class="checkField" /> 
<input name="userPassword" class="checkField" /> 
Questions connexes