2011-04-21 7 views
0

Comment récupérer les éléments associés à une classe un par un. Dans le formulaire j'ai peu de champs et quelques champs numériques sont associés à une classe. Maintenant sur soumettre je dois valider les champs de la même classe. J'utilise jquery pour ça.validation des champs de la classe

$("form").submit(function() { 
    $(".numeric").each(function(intIndex)){}) 
}); 

c'est ce à quoi je pense. Est-ce que mon approche est correcte. Toutes les suggestions s'il vous plaît.

Répondre

1

Votre approche semble correcte; étant donné un sélecteur, vous pouvez appliquer une fonction à chacun des éléments correspondants avec .each. L'avez-vous déjà essayé? Si oui, qu'en est-il de cela ne répond pas à vos besoins?

Si vous voulez éviter la soumission de formulaire, vous devez utiliser une variable Sentinal:

$("form").submit(function() { 
    var fieldsAreValid = true; 

    $(".numeric").each(function(intIndex)){ 
     if (/* this field isn't valid */) { 
     fieldsAreValid = false; 
     } 
    }); 

    if (!fieldsAreValid) 
    return false; 
}); 

Vous ne devriez jamais avoir peur d'essayer simplement quelque chose et voir si cela fonctionne. Mon professeur préféré avait l'habitude de dire "L'informatique est une science expérimentale - maintenant sortez de mon bureau!"

+0

@divya S'il vous plaît ne pas poster le code dans les commentaires; éditez-le dans votre question, si c'est pertinent. – meagar

+0

Merci pour l'info. – tapps

0

Votre approche semble techniquement correcte mais, juste un FYI, il existe déjà un framework qui a été construit pour gérer cela. Pourquoi réinventer la roue? Jetez un coup d'oeil jQuery Validate

0

Trouver exemple travailler ici: http://jsfiddle.net/ezmilhouse/ssVa9/

function is_numeric(mixed_var) { 
    return (typeof(mixed_var) === 'number' || typeof(mixed_var) === 'string') && mixed_var !== '' && !isNaN(mixed_var);  
} 

$("form").live("submit", function(){ 
    var val = true; 
    $(this).find('input[type=text]').each(function(){ 
     if ($(this).hasClass('numeric')) { 
      if (!is_numeric($(this).val())) { 
       alert('Error! Field: ' + $(this).attr('name')); 
       val = false; 
      } 
     } 
    }); 
    if (val === false) { 
     return false; 
    } 
}); 
+0

Merci pour l'info. Ça m'a beaucoup aidé – tapps

+0

de rien, si ça a résolu ton problème - plz accepte comme réponse finale – ezmilhouse

Questions connexes