OVH Cloud OVH Cloud

vérifier la structure du lien

1 réponse
Avatar
stefan
Bonjour,
je n'arrive pas à faire ce que je veux avec un bout de javascript.
Dans un formulaire, mon utilisateur doit rentrer une adresse web. Je
veux vérifier qu'elle comment par "http://".
J'ai cherché sur le net mais je n'ai rien trouvé s'y rapportant, alors
j'ai essayé de me débrouiller comme un grand.
J'ai pondu ça:

if (document.getElementById('mod').value != '' )
{
var chaine = document.getElementById('mod').value;
if (chaine.substring(0,7) != 'http://')
{
alert('Vous devez indiquer l\'adresse complète en
incluant le \"http://\"'); document.getElementById('mod').focus();
return false;
}
}

Pour moi, ça devrait marcher, mais la berre web developper de firefox
m'insulte en disant que chaine has no properties.
J'ai aussi essayé avec

if (document.getElementById('mod').value.substring(0,7) != 'http://')
{
alert('Vous devez indiquer l\'adresse complète en
incluant le \"http://\"');
document.getElementById('mod').focus();
return false;
}

et là, ça me dit que document.getElementById('mod').value() has no
properties, alors qu'il fonctionne bien dans la vérification que le
champ n'est pas vide.

J'aimerais surtout savoir où ça coince et ce que je fais de mal...
Merci pour vos réponses.

1 réponse

Avatar
ASM
Bonjour,
je n'arrive pas à faire ce que je veux avec un bout de javascript.
Dans un formulaire, mon utilisateur doit rentrer une adresse web. Je
veux vérifier qu'elle comment par "http://".
J'ai cherché sur le net mais je n'ai rien trouvé s'y rapportant, alors
j'ai essayé de me débrouiller comme un grand.
J'ai pondu ça:


le plus simple serait de passer par l'arbre des forms et leurs éléments ...

var chaine = document.forms['monForm'].elements['mod'].value;

ainsi le JS sait qu'il a à faire le traitement d'un string
(le contenu, ou value, d'un input text est toujours une chaine)

sinon et avec rapport à chaque niveau pour voir où ça bloque.

var mesg='';
if(document.getElementById('mod') {
mesg += 'mod existen';
alert(mesg);
if(document.getElementById('mod').value) {
mesg += 'mod a une valeurn';
if(document.getElementById('mod').value!='') {
mesg += 'valeur non viden';
alert(mesg);

chaine = document.getElementById('mod').value+'';
// chaine est assurément une chaine cette fois
mesg += 'chaine = '+chaine+'n';
alert(mesg);

chaine = chaine.substring(0,7);
mesg += 'chaine modif = '+chaine+'n';
alert(mesg);

if(chaine!='http://') {
alert('manque http://');
alert(msg+'pas de hhtp');
with(document.getElementById('mod')) {
focus(); select();
}
}
}
}
}


if (document.getElementById('mod').value != '' )
{
var chaine = document.getElementById('mod').value;
if (chaine.substring(0,7) != 'http://')
{
alert('Vous devez indiquer l'adresse complète en incluant


alert('Vous devez indiquer l'adresse completenen incluant : "http:///"');

le "http://"'); document.getElementById('mod').focus();
return false;
}
}

Pour moi, ça devrait marcher, mais la berre web developper de firefox
m'insulte en disant que chaine has no properties.
J'ai aussi essayé avec

if (document.getElementById('mod').value.substring(0,7) != 'http://')
{
alert('Vous devez indiquer l'adresse complète en
incluant le "http://"');
document.getElementById('mod').focus();
return false;
}

et là, ça me dit que document.getElementById('mod').value() has no
properties, alors qu'il fonctionne bien dans la vérification que le
champ n'est pas vide.

J'aimerais surtout savoir où ça coince et ce que je fais de mal...
Merci pour vos réponses.


if(document.getElementById('mod').value.toString().substring(0,7) != 'http://')

--
Stephane Moriaux et son [moins] vieux Mac