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/05/2011, 01h02   #1
Invité de passage
 
Homme
Webmarketer
Inscription : mars 2011
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Webmarketer
Secteur : Communication - Médias

Informations forums :
Inscription : mars 2011
Messages : 14
Points : 0
Points : 0
Par défaut Questions imbriquées.

Bonjour à tous,

Je vais commencer mon message comme beaucoup avant moi : je suis débutant en javascript.
J'ai été chargé par mon boss de créer un 'prompt' imbriqué dans un 'confirm'.
C'est-à-dire de demander à l'utilisateur de répondre à une première question.

S'il répond oui, on lui demande d'entrer son adresse e-mail.
S'il répond non, il est redirigé vers un site tiers.

S'il rentre correctement son e-mail, son client mail s'ouvre (équivalent du "mailto", avec un objet de mail prédéfini).
Si il ne veut pas rentrer son e-mail, il est encore renvoyé vers le meme site tiers.

Un petit schéma plus clair ici

Voici ce que j'ai réussi à faire en JS jusqu'ici :

Le script :
Code :
1
2
3
4
5
6
7
8
<script type="text/javascript">
	function box()
	{
	if (confirm('Voulez vous recevoir... ?'))
		{ prompt('veuillez entrer votre adresse e-mail') }
	  else 
		{document.location.href='http://www.ministryofsound.com';}
	}
Son intégration dans le HTML :
Code :
<a href="" onclick="javascript: return box();">Lien</a>
Si vous voulez tester, c'est ici.

Voilà, je suis un peu bloqué pour mettre tout ca en place. Je ne sais pas comment déclarer les conditions. Je ne sais pas quand les conditions propres à la première "box" doivent s'arrêter pour démarrer celles de la deuxième.

Merci à tous pour votre aide.
keysersausage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 09h16   #2
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 450
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 450
Points : 2 149
Points : 2 149
Eh bien il suffit d'écrire en javascript exactement ce que tu as écrit en français :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// demander à l'utilisateur de répondre à une première question.
if (confirm('Voulez vous recevoir... ?')) {
	// S'il répond oui, on lui demande d'entrer son adresse e-mail.
	var mail = prompt('veuillez entrer votre adresse e-mail');
	if (isValid(mail)) {
		// S'il rentre correctement son e-mail, son client mail s'ouvre (équivalent du "mailto", avec un objet de mail prédéfini).
		document.location.href='mailto:' + mail + '?subject=Objet_prédéfini';
	} else {
		// Si il ne veut pas rentrer son e-mail, il est encore renvoyé vers le meme site tiers.
		document.location.href='http://www.ministryofsound.com';
	}
} else {
	// S'il répond non, il est redirigé vers un site tiers.
	document.location.href='http://www.ministryofsound.com';
}
Bien entendu c'est à toi d'écrire la fonction "isValid(mail)" (qui peut n'être qu'une ligne de code et non une fonction d'ailleurs) en fonction de ce que tu dois vérifier dans l'adresse mail.
Loceka est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/05/2011, 11h17   #3
Invité de passage
 
Homme
Webmarketer
Inscription : mars 2011
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Webmarketer
Secteur : Communication - Médias

Informations forums :
Inscription : mars 2011
Messages : 14
Points : 0
Points : 0
Merci beaucoup Loceka !
Citation:
Eh bien il suffit d'écrire en javascript exactement ce que tu as écrit en français :
Justement, c'est en ca que je suis un débutant

Je teste ca et je te dis.

En fait, ce que je voulais, c'est que le message apparaisse au click sur le lien. Là il apparait automatiquement au chargement de la page.

Et cette fonction isValid(mail), comment fonctionne-t-elle s'il te plait ? Où dois-je la déclarer ?

Merci
keysersausage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 19h19   #4
Invité de passage
 
Homme
Webmarketer
Inscription : mars 2011
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Webmarketer
Secteur : Communication - Médias

Informations forums :
Inscription : mars 2011
Messages : 14
Points : 0
Points : 0
Bonjour,
Je me permets de faire remonter cette discussion parce que mon boss me relance là...


Désolé, j'aimerais vraiment comprendre s'il vous plait.

Merci
keysersausage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 00h59   #5
Membre Expert
 
Avatar de Watilin
 
Homme Matilin Torre
Étudiant
Inscription : juin 2010
Messages : 679
Détails du profil
Informations personnelles :
Nom : Homme Matilin Torre
Âge : 23
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 679
Points : 1 202
Points : 1 202
Bonsoir !

Pour valider une adresse mail, on a traditionnellement recours à une expression régulière (en anglais regular expression, abrégé regexp). Sans vouloir te faire peur, je dois te prévenir : une regexp, ça mord, surtout les débutants ! Mais c'est un truc à connaître, on peut faire des choses hyper puissantes avec.

Pour l'heure, puisque tu es pressé par le temps, tu peux en copier une sans chercher à la comprendre. Je te propose celle-ci, pas forcément la plus simple, mais elle vient directement du site regular-expressions.info que je considère comme une excellente source.
Code regexp :
\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b

Pour déclarer ta fonction, rien de plus enfantin, tu peux la mettre avant ou après ta fonction box :
Code JavaScript :
1
2
3
4
function isValid( mail ) {
    var rx = /\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i;
    return rx.test(mail);
};
Explication : je déclare la regexp entre deux slash (/), c'est comme ça qu'on fait en JS. Et je rajoute l'option i qui la rend insensible à la casse, autrement dit elle acceptera aussi bien les minuscules et les majuscules. Ensuite, j'utilise la méthode .test() des regexps, qui renvoie true si la chaîne est valide, ou false sinon.
Note que je n'étais pas obligé de passer par une variable intermédiaire rx, c'est juste pour plus de clarté
__________________
Disposition de clavier ergonomique française : Bépo
Watilin 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 07h28.


 
 
 
 
Partenaires

Hébergement Web