11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour, je rencontre un problème en javascript. J'ai un formulaire en html et le javascript vérifie si le mot de passe est correct (jusque la tout marche). Quand je clique sur le bouton Valider le javascript ce lance.
Bouton Valider :
<input type="image" src="../images/valider.jpg" value="Envoyer" class="valider" onClick='verification()'/>

Code JavaScript :
<script language="javascript">
			function verification(){
				var mdp1 = document.inscription.pass1.value;
				var mdp2 = document.inscription.pass2.value;
		  		if ((mdp1.length > 8) && (mdp1.length < 20) && (mdp2.length > 8) && (mdp2.length < 20) && (mdp1 == mdp2)){
		  			[b]document.location.href="../HOME/accueil.html";[/b]
		  			alert('Votre mot de passe est correct.');
		  		}
		  		else {
		  			alert('Mot de passe incorrect ! Veuillez recommencez.');
		  		}
		  	}
		</script>

Tout marche le seul problème est que sa ne me redirige pas vers la page accueil Smiley decu
Merci si vous avez la solution je ne comprends pas Smiley smile
Modifié par Kricx (06 Jan 2015 - 21:46)
Modérateur
Salut,

window.location.href et non pas document.loca.... Smiley cligne

À noter que la manière que tu pratiques ce sujet n'est pas des meilleurs. Normalement, c'est le serveur qui doit faire cela (vérif mot de passe et redirection).
Modifié par niuxe (06 Jan 2015 - 22:11)
Ok merci avec window sa ne marchait pas non plus mais par contre j'ai essayer d'ouvrir la page avec firefox et la sa marche ! Pourquoi sa pourrait marcher avec Firefox et pas avec chrome ?

Et oué je suis d'accord c'est mieux en php mais c'est pour un mini projet au lycée et le php au lycée c'est galère et en plus on la pas vu Smiley smile
Il y a plus simple que
if ((mdp1.length > 8) && (mdp1.length < 20) && (mdp2.length > 8) && (mdp2.length < 20) && (mdp1 == mdp2))

car
&& (mdp2.length > 8) && (mdp2.length < 20)
ne sert à rien puisque il faut
&&(mdp1 == mdp2)
Modérateur
1. Lorsque tu dois écrire un élément image ou de type image, tu dois avoir obligatoirement l'attribut alt.
2. Ce type d'expression est pour moi un peu bizarre :
document.inscription.pass1.value

3. lorsque l'on redirige, c'est en générale en absolue.
/HOME/accueil.html


Kricx a écrit :
Pourquoi sa pourrait marcher avec Firefox et pas avec chrome ?

Les joies du code. Chrome utilise webkit comme moteur de rendu et Firefox, c'est Gecko digne héritier de Netscape.

Mais dans ton cas, je penche plus sur des erreurs de syntaxes. voir ce que j'ai écris plus haut.
Modifié par niuxe (07 Jan 2015 - 00:41)
niuxe a écrit :
1. Lorsque tu dois écrire un élément image ou de type image, tu dois avoir obligatoirement l'attribut alt.
il n'est pas question d'image mais de texte

niuxe a écrit :
2. Ce type d'expression est pour moi un peu bizarre :
document.inscription.pass1.value

il y a un var mdp1 = devant document.inscription.pass1.value;, ce n'est plus une écriture mais une lecture !
Modérateur
rose brooks a écrit :
il n'est pas question d'image mais de texte

hum....

<input type="image" src="../images/valider.jpg" value="Envoyer" class="valider" onClick='verification()'/>


Au passage,
1. cette manière de faire est mauvaise puisque le JS intrusif et obstructif....
2. on ne clique pas on soumet !
3. pour chipoter, onclick ne s'écrit pas en camelCase. Smiley cligne

rose brooks a écrit :

il y a un var mdp1 = devant document.inscription.pass1.value;, ce n'est plus une écriture mais une lecture !


? Un json ?
Modifié par niuxe (08 Jan 2015 - 00:33)
@nluxe C'est vilain mais ce sont juste des références aux éléments du DOM automatiquement rattachés à l'objet document (certainement pour un accès plus 'intuitif' Smiley sweatdrop ).
document.inscription === document.querySelector( "form[name=inscription]" )
// true

document.inscription.pass1 === document.querySelector( "form[name=inscription] [name=pass1]" )
// true


@Kricx Il vaut mieux, à mon avis, rajouter un id à tes champs pour les récupérer de manière classique en JS :
document.getElementById('pass1');

La navigation dans document grace aux names des formulaires/champs est moins claire (un peu magique).
Modifié par Freez (13 Jan 2015 - 17:01)