J'essaie de valider l'entrée de formulaire, mais ma validation ne fonctionne pas.
La chaîne doit avoir au moins une lettre ou un chiffre,
un nombre entier doit être compris entre 0 et 11 et doit sélectionner au moins un fruit.
Mais même si je ne saisis aucune entrée,
il suffit d'aller dans le fichier input_ok.html.
Il doit faire apparaître la fenêtre d'erreur.Validation de formulaire avec JavaScript
Voici mon code:
function validateInput() {
var str = myForm.inputString.value;
var nbrStr = myForm.inputInteger.value;
var nbr = parseInt(nbrStr);
var fruit = myForm.fruit.value;
if (str != "" && nbrStr != "" && fruit != "" && !isNaN(nbr) && nbr < 11) {
return true;
} else {
var msg = "";
var strError = false;
if (str == "") {
msg += "\nPlease enter a string with at least one letter or digit";
strError = true;
}
if (nbrStr == "") {
msg += "\nPlease enter an integer in the range 0-11";
} else if (isNaN(nbr)) {
msg += "\nPlease enter an integer";
} else if (nbr > 11) {
msg += "\nPlease enter an integer less than 11";
}
if (strError) {
myForm.inputString.focus();
} else {
myForm.inputInteger.focus();
}
alert(msg);
}
return false;
}
<body>
<h1>Week 08, Exercise 01</h1>
<form action="week08_01servlet"
method="post"
name="myForm"
onsubmit="return validateInput();">
<p>Please enter the following information,
and then click the submit button.</p>
<p class="indent">A string with at least one letter or digit
<input type="text" name="inputString">
<br>An integer in the range 0-11
<input type="text" name="inputInteger">
<br>Pick a fruit <select name="fruit">
<option value="---">---
<option value="apple">apple
<option value="banana">banana
<option value="cherry">cherry
<option value="pear">pear
</select></p>
<p><input type="submit" value="Submit"></p>
<input type="hidden" name="command" value="do_it">
</form>
</body>
Assurez-vous de valider également toutes les entrées de formulaire ** côté serveur **. Il est possible pour quelqu'un de contourner la validation Javascript. –
À moins que vos règles de validation ne soient particulièrement complexes, je vous recommande d'utiliser une bibliothèque de validation javascript préconstruite plutôt que de rouler la vôtre. Il y en a plein de bonnes (je préfère http://bassistance.de/jquery-plugins/jquery-plugin-validation/ mais il y a beaucoup d'autres libs, toutes deux basées sur un framework tel que jQuery et des libs autonomes). Le faire vous-même vous cause tout simplement un travail inutile, et vous avez encore toute votre validation côté serveur pour écrire aussi (Vous vous souvenez des choses côté serveur, non?) – GordonM
Fonctionne ici dans Chrome, plage également '0-11 ', au moins pour moi, comprend' 11'. –