2013-02-08 5 views
0

J'ai un formulaire qui permet à l'utilisateur de choisir 3 périodes de date (ou 1 ou 2). Ce motif est répété, permettant à l'utilisateur de sélectionner des dates pour les plages personnalisées, hebdomadaires, mensuelles, quotidiennes, etc. s'il y a un moyen que je peux optimiser la jquery afin que je n'aie pas à écrire toute la fonction jquery par entrée? la seule chose qui change vraiment est le nombre dans l'id.jquery boucle à travers des enregistrements similaires pour datepicker

<input type='text' id='custom1from'><input type='text' id='custom1until'> 
<input type='text' id='custom2from'><input type='text' id='custom2until'> 
<input type='text' id='custom3from'><input type='text' id='custom3until'> 

<input type='text' id='monthly1from'><input type='text' id='monthly1until'> 
<input type='text' id='monthly2from'><input type='text' id='monthly2until'> 
<input type='text' id='monthly3from'><input type='text' id='monthly3until'> 



$("#custom1from").click(function() { 
     $("#custom1from").datepicker(); 
     }); 

     $("#custom1until").click(function() { 
     $("#custom1until").datepicker(); 
     }); 

     $("#custom2from").click(function() { 
     $("#custom2from").datepicker(); 
     }); 

     $("#custom2until").click(function() { 
     $("#custom2until").datepicker(); 
     }); 


    $("#custom3until").click(function() { 
    $("#custom3until").datepicker(); 
    }); 
    $("#custom3until").click(function() { 
    $("#custom3until").datepicker(); 
    }); 

Répondre

1

juste lui donner une classe et sélectionnez sur ce point.

<input type='text' class="datepick" id='custom1from'><input type='text' id='custom1until'> 
<input type='text' class="datepick" id='custom2from'><input type='text' id='custom2until'> 
<input type='text' class="datepick" id='custom3from'><input type='text' id='custom3until'> 

<input type='text' class="datepick" id='monthly1from'><input type='text' id='monthly1until'> 
<input type='text' class="datepick" id='monthly2from'><input type='text' id='monthly2until'> 
<input type='text' class="datepick" id='monthly3from'><input type='text' id='monthly3until'> 

$(".datepick").datepicker(); 
1
$('input').click(function(){ 
    $(this).datepicker(); // use "this" don't requery the DOM. 
}); 

Vous feriez mieux ajouter ces entrées d'une classe, comme foo:

$('input.foo').click(function(){ 
    $(this).datepicker(); 
}); 
Questions connexes