Vérification automatique avec onchange

Signaler
Messages postés
5
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
16 décembre 2007
-
Messages postés
142
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
29 août 2009
-
Bonjour, je voudrais avoir un formulaire qui vérifie automatiquement les champs (ex.e-mail du type XXXXXXX@XXXXXX.fr ou si c'est un nombre ...) je connais la fonction onchange mais je ne suis pas très bon en javascript je le suis plus en php, html et css donc je voudrais, si possible un code sources déja fait ou m'expliquer. Merci, cordialement

7 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
Bonjour,

    et pourquoi ne pas faire une recherche dans les codes ?
    il y a une foultitude de réponses

    je n'en citerais que 2, au hasard   :o)
        CCF et CONFORM

                je dis au hasard, car il y en a d'autres

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
5
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
16 décembre 2007

Je vais regarder mes merci de continuer a me répondre.
Messages postés
5
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
16 décembre 2007

j'ai rechercher dans les codes mais je n'est trouvé que des formulaire qui vérifie en cliquant sur un bouton, mais moi je cherche un formulaire qui vérifie automatiquement (comme l'on trouve sur plusieur site)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
ben et alors ?        le "onclick" n'appelle pas une fonction ?
appelle-là quand tu veux. ( onblur, onchange... )
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
5
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
16 décembre 2007

je pense que c'est onchange mais sinon il peut aussi y avoir une actulisation, ou alors, des fois, pour les forum il y a une visualisation automatique dès que l'on écrit un caractère, pour répondre a une question. quand je disai onchange c'était pour un exemple.
Messages postés
5
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
16 décembre 2007

j'ai recherché et j'ai créer un code pur virifier le formulaire sans clic (automatique) avec onChange mais j'aurais besoin d'aide pour, au lieu de le faire pour tout le formulaire, vérifier champ par champ donc voici le code : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
    <title>Script : Formulaire de validation II</title>
    <style>
.error {
     color: #FF0000;
}
span {
     font-weight: bold;
}
</style>

<script type="text/javascript">

function validate() {
  if(!document.getElementById) return;

  var pseudo = document.getElementById("pseudo").value;
  var email = document.getElementById("email").value;
  var surname = document.getElementById("pass").value;
  var street = document.getElementById("street").value;
  var town = document.getElementById("town").value;
  var city = document.getElementById("city").value;
  var county = document.getElementById("county").value;
  var postcode = document.getElementById("postcode").value;
  var phone = document.getElementById("phone").value;
  var fax = document.getElementById("fax").value;
  var incorrect = new Array();
  var no = 0;
  var regExp = /^[a-zA-Z0-9._-]+$/;
 
  if(regExp.test(pseudo)) {

  } else {
       incorrect[no] = "1";
       no++;
       title = "";
  }

  regExp = /^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/;
  if(regExp.test(email)) {
  } else {
       incorrect[no] = "2";
       no++;
       initials = "";
  }

  regExp = /^[a-zA-Z0-9._-]+$/;
  if(regExp.test(surname)) {
  } else {
       incorrect[no] = "3";
       no++;
       surname = "";
  }

  if(street.length < 5) {
       incorrect[no] = "4";
       no++;
       street = "";
  }

  if(town.length < 3) {
       incorrect[no] = "5";
       no++;
       town = "";
  }
  if(city.length < 3) {
       incorrect[no] = "6";
       no++;
       city = "";
  }
  if(county.length < 5) {
       incorrect[no] = "7";
       no++;
       county = "";
  }

  postcode = postcode.toUpperCase();

  regExp = /[A-Z]{2}\d{1}\d?\s?\d{1}[A-Z]{2}/;
  if(regExp.test(postcode)) {
       if(postcode.indexOf(" ") < 0) {
            postcode = postcode.substring(0,postcode.length-3) + " " + postcode.substring(postcode.length-3,postcode.length);
       }
  } else {
    incorrect[no] = "8";
    no++;
    postcode = "";
  }

  regExp = /\(?\d{5}\)?\s?\d{6}/;
  if(regExp.test(phone)) {
       if(phone.indexOf("(") < 0) {
            phone = "(" + phone.substring(0,5) + ") " + phone.substring(phone.length-6,phone.length);
    } else if(phone.indexOf(" ") < 0) {
            phone = phone.substring(0,7) + " " + phone.substring(phone.length-6,phone.length);
       }
  } else {
    incorrect[no] = "9";
    no++;
    phone = "";
  }
  if(regExp.test(fax)) {
       if(fax.indexOf("(") < 0) {
            fax = "(" + fax.substring(0,5) + ") " + fax.substring(fax.length-6,fax.length);
       } else if(fax.indexOf(" ") < 0) {
           fax = fax.substring(0,7) + " " + fax.substring(fax.length-6,fax.length);
       }
  } else {
    incorrect[no] = "10";
    no++;
    fax = "";
  }

  for(i=1;i<11;i++) {
          document.getElementById(i).style.color="#00762f";
  }

  for(j=0;j<no;j++) {
          document.getElementById(incorrect[j]).style.color="#FF0000";
  }
  document.getElementById("pseudo").value = pseudo;
  document.getElementById("initials").value = initials;
  document.getElementById("surname").value = surname;
  document.getElementById("street").value = street;
  document.getElementById("town").value = town;
  document.getElementById("city").value = city;
  document.getElementById("county").value = county;
  document.getElementById("postcode").value = postcode;
  document.getElementById("phone").value = phone;
  document.getElementById("fax").value = fax;
}

</script>
<style>   
td {
font-size : 10px;
font-family : Verdana, Arial, Helvetica, sans-serif;
color : #000000;
}    
</style>   
    </head>
                       

       

<form action="" method="post">
Choisissez un pseudo :, , ----
E-mail :, , ----
Mot de passe :, , ----
Street:, , ----
Town:, , ----
City:, , ----
County:, , ----
Postcode:, , ----
Phone number:, , ----
Fax number:,

</form>

               
                                </td>
                            </tr>
                        </tbody>
                    </table>

                   
   
    </html>



Merci d'avance !
Messages postés
142
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
29 août 2009
1
Salut,

Le problème avev le onChange c'est qu'il ne s'exécute que lorsque le input pert le focus...donc d'après ce que tu explique cela ne va pas avec ce que tu veux.
Voici un petit bout de code qui effectue un complétion, il vérifie tous les 100ms (tu peux modifier ce temps) si le texte change dans le input.

Voici le code javascript:

<script type= "text/JavaScript">

var contenu="";
setInterval("completion()",100);

function verif()
{
    if(document.form.mon_text.value == "Pseudo")
        alert("ok");
}

function completion()
{
        if(document.form.mon_text.value != contenu)
        {
            verif();
            contenu = document.form.mon_text.value;
        }
}
</script>

et le html :

<form name ="form">
   
</form>

Voilà après pour ce qui est d'être un mail il faut que tu découpes le contenu de ton input etc...