2010-08-18 6 views
0

J'utilise le plug-in jQuery validation pour valider certains formulaires personnalisés et soumettre les formulaires à un outil CRM. L'outil CRM dispose d'un large éventail de variables de données, que nous pouvons également publier, mais parfois il y a des champs qui ne correspondent pas et nous devons les afficher tous dans le champ des notes de l'outil CRM.Plugin de validation jQuery et attributs de nom identiques/en double

Maintenant, le problème est que nous devons utiliser le même nom HTML = "" attribut pour attraper les valeurs, et c'est là que le plugin de validation semble me gâcher. Je comprends que l'attribut name = "" doit être un identifiant unique, mais pour l'instant, il m'est impossible de modifier ce problème.

Je voudrais savoir un moyen de faire le plugin, ignorer ces name = ""; et valider en fonction d'une autre méthode? Je regardais toute la journée à travers la documentation, et je n'arrive pas à trouver moi-même quelque chose que je pourrais utiliser. Dans la mesure où j'ai pu tester même en écrivant des règles personnalisées, et un nom = "", l'attribut est présent, le plugin repose toujours sur le nom = "" attribuer des idées?

+0

Ces champs ont-ils des ID ou d'autres moyens d'identification individuelle? Essayez-vous d'appliquer la même règle de validation (par exemple, "obligatoire") à chacun d'entre eux? –

+0

Salut Ken, merci pour votre réponse, Oui, je peux attribuer des ID/Classes uniques à ces champs, j'utilise aussi le class = "required" pour les valider pour l'entrée. Mais ils ont tous le même nom = "" attribut que mentionné ci-dessus. Merci encore. –

+0

Aussi .. Je pourrais enlever le class = "requis", en faveur d'une autre méthode si nécessaire. –

Répondre

0

Après avoir cherché une solution à ce problème, j'ai trouvé la solution suivante qui fonctionne pour moi, mais elle pourrait indiquer à quelqu'un la bonne idée pour l'aider à résoudre le même problème. Ce que j'ai fait était de parcourir tous les champs d'entrée avec la classe de .CRMEVAL, et j'ai également assigné un attribut html personnalisé pour aider à identifier la valeur entrée dans le backend. Ensuite, j'ai ajouté ces champs comme champs de saisie cachés. J'espère que cela aide quelqu'un!

$(document).ready(function() { 
// grab form submission 
$("#form-name").submit(function() { 

// loop through fields with .CRMEVAL class and rewrite them as hidden input fields. Append fields to hidden container. 
$('.CRMEVAL').each(function(){ 
    inputField = "<input type='hidden' name='GENERATED-NAME' value='" + $(this).attr("label") + ":" + $(this).val() + "' />"; 
    $("#hiddenFormFields").append(inputField); 
}); 

// submit the form 
return true; 

});