2009-08-10 6 views
1

je les suivantesfonction

$().ready(function() { 
    $("input[name^=totalRent_]").each(function() 
    { var input = $(this); 
     var name = input.attr('name'); 
     var num = /\d+$/.exec(name)[0]; 

Ma forme html Javascript exec() a:

<input type="text" name="totalRent_1" value="" /> <br /> 
    <input type="hidden" name="totalRent_1_hidden" /><br /> 
    <hr /> 
    <input type="text" name="totalRent_2" value="" /> <br /> 
    <input type="hidden" name="totalRent_2_hidden" /><br /> 
    <hr /> 
    <input type="text" name="totalRent_3" value="" /> <br /> 
    <input type="hidden" name="totalRent_3_hidden" /><br /> 
    <hr /> 

Maintenant, je reçois une erreur javascript disant: /\d+$/.exec(name) est nulle

Chaque fonction est attachée à ("input [nom^= totalRent_]"). Qu'est-ce que j'ai besoin de faire pour que ce soit uniquement attaché à total_rent et non à totalRent _..._ caché?

Merci d'avance.

Répondre

1

Si vous souhaitez sélectionner les entrées de texte et non pas ceux qui sont cachés vous changez de sélection pour filtrer par multiple attributes (nom et type):

$('input[name^=totalRent_][type=text]') 

Ou vous pouvez vérifier l'attribut type de l'élément sur la chaque fonction de rappel:

$('input[name^=totalRent_]').each(function(){ 
    var input = $(this); 
    if (input.attr('type') == 'text'){ 
    var name = input.attr('name'); 
    var num = /\d+$/.exec(name)[0]; 
    } 
}); 
+0

wow, qui est souteneur – CFNinja

+0

$ .pimp() {function();} – zoltar