Je ne sais pas pourquoi cela ne fonctionne pas, mais en faisant des fonctions de validation et en essayant de générer un message dynamique à une alerte quand ils frappent soumettre et oublié de remplir un champ. Cela fonctionne seulement sur le deuxième clic du bouton de soumission, en ce qui concerne la suppression de la chaîne, tout le reste fonctionne quand il le devrait.Javascript ne remplacera pas la chaîne
Voici le code:
var fname = $('#fname');
var lname = $('#lname');
function validatefname(){
var a = fname.val().length;
if(a < 2) {
fname.prev().addClass("error");
if(msg.search("First Name") == -1) {
msg+= "-Please enter your First Name\n";
}
return false;
} else {
fname.prev().removeClass("error");
msg.replace(/Please enter your First Name\n/g, "");
return true;
}
}
fname.blur(validatefname);
fname.keyup(validatefname);
step4submit.click(function(){
if(validatefname()) {
step4form.submit();
return true
} else {
msg+= "\nPlease fill out the fields marked in red";
alert(msg);
msg = "";
return false;
}
});
En outre, le gestionnaire de clic du bouton de soumission est le mauvais endroit pour valider les formulaires. Si le formulaire est soumis par un moyen autre que le léchage du bouton, par exemple en appuyant sur Entrée, la fonction de validation peut ne pas être appelée. Utilisez toujours form.onsubmit pour la validation, pas submitinput.onclick. – bobince
Cela a du sens, mais fonctionne-t-il également sur un clic d'étiquette d'ancrage? Je ne comprends pas cela résoudre le problème pour appuyer sur Entrée à la fin ou au milieu de la forme. –