Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/02/2011, 09h47   #1
Membre régulier
 
Homme Nicolas
Étudiant
Inscription : mai 2010
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2010
Messages : 308
Points : 74
Points : 74
Par défaut OnSubmit et bloquage de validation

Bonjour,

j'ai un soucis avec mon javaScript.
Code js :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
function controleBAT()
		{
			var rep = batteries.stockage.value;
			var nb = batteries.nbBatteries.value;
			var stock = batteries.stockageBatteries.value;
			if ((nb < 0) || (nb >= 1000) || !IsNumeric(nb) || (rep="oui"))
			{
				alert("nombre de batteries erroné");
				return false;
			}
			else if ((stock < 0) || (stock >= 10000) || !IsNumeric(stock) || (rep="oui"))
			{
				alert("capacité de stckage erroné");
				return false;
			}
			else
			{
				if ((nb != "") || (nb > 0) || (nb <= 1000) || IsNumeric(nb) || (stock > 0) || (stock <= 10000) || IsNumeric(stock))
				{
				return true;
				}
			}
		}

que j'appelle avec ceci :
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<form name="batteries" method="post" action="fourniture.php" onSubmit="controleBAT();">
	<table>
	<p>
	L'installation est-elle équipée d'un dispositif de stockage de l'énergie par batteries ?
	</p>
	<input type="radio" name="stockage" value="oui"/>Oui<input type="radio" name="stockage" value="non"/>Non<br/>
	Nombre de batteries : <input type="text" name="nbBatteries"/><br/>
	Capacité totale de stockage (en kWH) : <input type="text" name="stockageBatteries"/><br/>
	<p>
	Si votre installation comporte une ou plusieurs batteries, joignez le schéma de l'installation.
	</p>
	</table>
	<input type="submit" name="valider" value="OK" /><input type="reset" value = "Annuler"/><br/>
</form>

Le problème étant que si je choisis "Non" dans la variable stockage (qui signifie qu'il n'y a pas de batteries), au moment de la validation, JS va m'afficher le message "Erreur, nombre de batteries incorrectes".
Or, comme je n'en ai pas, le message ne devrait pas apparaître.
Ensuite, il valide tout de même le script et passe à la page suivante.

Voyez vous ou j'ai pu faire une erreur ?
Merci !
feldi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 11h51   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 930
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 930
Points : 4 744
Points : 4 744
Bonjour,
plusieurs erreurs,
- dans la fonction il vaut mieux récupérer la référence à la FORM plutôt que de l'appeler en direct
Code :
  var oForm = document.forms['batteries'];
on utilisera ensuite oForm pour accéder aux différents éléments

- pourquoi surcharger avec une fonction isNumeric alors que l'on a à disposition isNaN

- l'écriture de (rep="oui") est une affectation et non une comparaison, donc sera toujours oui et ça passe
une ligne comme celle ci devrait faire l'affaire
Code :
 if ((nb < 0) || (nb >= 1000) || isNaN(nb) || (rep == "oui")) {
- une petite dernière, pour qu'il n'y ait pas soumission du formulaire il faut utiliser la valeur de retour de la fonction false/true, ce que tu ne fait pas, donc mettre
Code :
<form name="batteries" method="post" action="fourniture.php" onsubmit="return controleBAT();">
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h49.


 
 
 
 
Partenaires

Hébergement Web