IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Eviter la saisie de liens dans un formulaire


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de trx337
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Décembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2015
    Messages : 74
    Billets dans le blog
    1
    Par défaut Eviter la saisie de liens dans un formulaire
    bonjour
    je n'arrive pas à écrire une phrase de code pour éviter que quelqu'un m'envoie dans son texte un lien http.
    pour ce faire j'avais des idées et soit on dit dans le code si le mot <a> existe , envoie une alerte et reste à false ou bien idem : si le mot http existe envoie une alerte et reste à false.

    j'ai déjà une fonction qui fonctionne bien si le formulaire n'est pas rempli . le voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    function VerifForm()
    {
      if (
        (document.form.messagelivre.value == "a");)
      {
        alert("veuillez ne pas écrire de lien dans le message");
        return false;
      }
      else if (
        (document.form.civi.value == "") || (document.form.prenom.value == "") || (document.form.nom.value == "") || (document.form.email.value == "") || (document.form.profil.value == "") || (document.form.messagelivre.value == ""))
      {
        alert("veuillez remplir tous les champs");
        return false;
      }
      else
      {
        return true;
      }
    }

    c'est la ligne : (document.form.messagelivre.value=="a"); qui ne va pas et que je cherche à écrire cette ligne veut dire si la lettre a est le message alors return false

    première question si on remplace la lettre a par < , eh bien il ne comprends ce symbole et là je voudrais bien savoir pourquoi ?

    deuxième question si j'écris if "http" in document.form.messagelivre; ça ne fonctionne pas. Pourtant c'est cela que je voudrais lui dire .
    et j'ai essayé de trouver des réponses et je ne sais pas comment m'y prendre pour résoudre le problème . idem pour écrire ceci :
    "<a>" in document.form.messagelivre; puisque un lien en html commence par <a>.

    merci pour votre réponse

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Bonjour,

    La propriété value renvoie le contenu de l'élément du formulaire sous forme de chaine de caractères. L'opérateur in sert à tester le contenu d'un objet (tableau) il n'est donc pas approprié. On utilise la méthode search() pour faire des recherches dans une chaine de caractères. Si la recherche n'aboutit pas le résultat sera -1.

    Donc tu pourrais faire un truc dans le genre :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var champ = document.form.messagelivre.value;
    var regex = /http/g;
    if (champ.search(regex) !== -1)
    {
    // le champ contient "http"
    }

  3. #3
    Membre confirmé
    Avatar de trx337
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Décembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2015
    Messages : 74
    Billets dans le blog
    1
    Par défaut
    merci je vais essayer et pour ma question concernant le symbole < , pourquoi ne marche t il pas ?

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut
    Plutôt que .value, utilise la propriété .innerHTML.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    			let docuLivre = document.getElementById("messagelivre").innerHTML;
    			if (docuLivre.indexOf("</a")!==-1) {
    				console.log("</a est contenu dans le document");
    				}else{
    				console.log("</a n'est pas contenu dans le document");
    			}
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    Citation Envoyé par ProgElecT
    Plutôt que .value, utilise la propriété .innerHTML.
    Attention :
    La propriété innerHTML ne change pas lors de la saisie dans une textarea, la valeur qui s'affichera est la valeur contenue, si existe, entre les balises à l'initialisation de la page, seule la propriété value est mise à jour.

  6. #6
    Membre confirmé
    Avatar de trx337
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Décembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2015
    Messages : 74
    Billets dans le blog
    1
    Par défaut
    merci à vous trois de m'avoir répondu et je vais revoir mon script cet après midi

    mais pouvez vous répondre : pourquoi : (document.form.messagelivre.value == "<") donc < ou &lt; ne marche pas ?

    d'autre part la console , je vais peut être vous paraître ignare mais elle s'ouvre bien avec F12 ? car avec F12 et mon easy php , elle ne fonctionne pas bien et même très mal , elle est sur le coté alors que je voudrais la mettre en dessous , et j'avais fais un stage ou elle fonctionnait et elle était en dessous et je ne sais plus comment on la met ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par ProgElecT Voir le message
    ...Plutôt que .value, utilise la propriété .innerHTML...
    @ProgElecT
    Non.
    Si c'est (très certainement) un <textarea>, on utilise .value.

    @trx337
    • La console : "F12" ou "clic droit" -> "Inspecter/Examiner l'élément"
    • L'afficher en bas : en haut à droite de la console : "..." -> "Ancrer en bas"

  8. #8
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut

    Citation Envoyé par trx337
    quelqu'un m'envoie dans son texte un lien http.
    pour ce faire j'avais des idées et soit on dit dans le code si le mot <a> existe
    Oui, en effet, il est évidant que la récupération est au niveau d'un textarea

    Donc pour ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    			let docuLivre = document.getElementById("messagelivre").value;
    			if (docuLivre.indexOf("</a>")!==-1) {
    				console.log("</a> est contenu dans le document");
    				}else{
    				console.log("</a> n'est pas contenu dans le document");
    			}
    cela reste pertinent, non?.
    Moi je préfère tester la balise fermante, car l'ouvrante pourrait être <a href='https ......
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Intégration d'images en lien relatif dans un formulaire continu
    Par Nephyline dans le forum IHM
    Réponses: 2
    Dernier message: 25/08/2009, 09h26
  2. [A-02] Générer un lien clicquable dans un formulaire
    Par Seb33300 dans le forum Access
    Réponses: 2
    Dernier message: 10/12/2008, 09h20
  3. Affichage lien Hypertexte dans tableau Formulaire
    Par madchemiker dans le forum IHM
    Réponses: 2
    Dernier message: 23/05/2007, 11h40
  4. Réponses: 4
    Dernier message: 17/05/2007, 14h17
  5. Lien hypertexte dans un formulaire
    Par 33ctdebut dans le forum IHM
    Réponses: 3
    Dernier message: 02/02/2007, 22h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo