2010-04-01 4 views
1

J'utilise Struts 2.1.8 et face à un problème de validation dans IE. Je reçois l'erreur suivanteproblème de validation struts dans IE

An exception occurred: Error. Error message: Invalid argument. 

J'ai essayé de comprendre la cause et trouvé ce qui suit. Mon code généré javascript est:

field = form.elements['district.name']; 
var error = "Enter only alphabets for district"; 
if (continueValidation && field.value != null && !field.value.match("^[a-zA-Z ]*$")) { 
    addError(field, error); 
    errors = true; 
} 

J'ai essayé de se moquer par mettre le même code dans une fonction et de l'appeler en cas onclick. La méthode addError() lève l'exception et la raison est field variable. Si je le change en field[0], cela fonctionne très bien. Comment réparer cette erreur?

Répondre

0

Vérifiez la source HTML générée. Ouvrez la page dans webbrowser, cliquez avec le bouton droit de la souris et choisissez Afficher la source. Le nom du champ d'entrée est-il vraiment district.name? N'est-il pas préfixé/suffixé avec une autre clé générée automatiquement (probablement l'ID/le nom du <form>) comme le font beaucoup d'autres frameworks MVC? Si c'est le cas, vous devrez modifier le code JavaScript en conséquence, en utilisant le bon nom d'élément tel qu'il apparaît dans l'arborescence DOM HTML. Vous savez, JavaScript s'exécute sur la machine cliente et ne voit que l'arborescence DOM HTML générée, pas le code "original" côté serveur qui est responsable de la génération du code HTML.