11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour, Bonsoir,
J'ai créé un ptit script pour vérifier mon formulaire de contact mais les alerts ne fonctionnent pas, quand je clique sur envoyer mon formulaire il ne me dit rien ni merde ni merci ni quoique ce soit que j'aimerais qu'il me dise en fonction du remplissage des champs. Voilà le code :




function inscriptionVerif(id_champs)
{
var verif, valeur;
valeur=document.forms["inscription"].elements[id_champs].value;

if(id_champs == "mail")
{
var reg = new RegExp("^[a-zA-Z0-9_-]+@[a-zA-Z0-9-]+[.][a-zA-Z]{2,4}$") ;
var veriflogin=document.forms["inscription"].elements["nom"].value;
var tab_users;
tab_users = veriflogin.split("///");

if(reg.exec(valeur))
{
verif = true;
}
else
{
verif = false;
}


}

if(id_champs == "nom" || id_champs == "civilite" || id_champs == "objet" || id_champs == "message" )
{
if(valeur == "")
{
verif = false;
}
else
{
verif = true;
}
}


if(verif == false)
{
document.getElementById("img_"+id_champs).src='img/error.png';
}
else
{
document.getElementById("img_"+id_champs).src='img/valid.png';
}

}

function inscription()
{

var imgs = document.getElementsByTagName('img');
var cpt = 0;

if(cpt == 1)
{
alert("Bonjour " + users+ ",\nMerci nous avoir envoyé un message, nous vous répondrons au plus vite ! ");
document.forms["button_connexion"].elements["validation"].value = "envoyer";
return true;
form_inscription.submit()

}
else
{
alert("Vous n'avez pas rempli tous les champs !");
return false;
}
}

quand je regared les bug il me marque inscription is not a function mais dans ma ligne 1 de mon index alors que c'est l'endroit ou se trouve le doctype, moi yana pas comprendre.

Bouef si vous aviez une petite idée ce ne serait pas de refus !

Merci bien !
Coucou,

Tu pourrais éventuellement faire voir ton formulaire où tu appelles la fonction inscription() ?
Voilà le form :


<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" id="inscription" name="inscription">



<label name="mail" class="inscription" >Civilité :</label><br/>
<select name="civilite" id="civilite" onClick="inscriptionVerif('civilite');" onKeypress="inscriptionVerif('civilite');" onChange="inscriptionVerif('civilite');" >
<option>Madame</option>
<option>Mademoiselle</option>
<option>Monsieur</option>
</select>
<div class="verif"> <img id="img_civilite" src="" alt="" /> </div>

<br/><br/>



<label name="mail" class="inscription">Nom :</label><br/>
<input type="text" name="nom" onKeypress="inscriptionVerif('nom');" onChange="inscriptionVerif('nom');">
<div class="verif2"> <img id="img_nom" src="" alt="" /> </div>


<br/>


<label name="mail" class="inscription">Objet :</label><br/>
<input type="text" name="objet" onKeypress="inscriptionVerif('objet');" onChange="inscriptionVerif('objet');">
<div class="verif2"> <img id="img_objet" src="" alt="" /> </div>


<br/>




<label name="mail" class="inscription">E-mail :</label><br/>
<input type="email" name="mail" onKeypress="inscriptionVerif('mail');" onChange="inscriptionVerif('mail');"/>
<div class="verif2"> <img id="img_mail" src="" alt="" /> </div>


<br/>


<label name="mail" class="inscription">Votre message :</label><br/>
<textarea name="message" rows="10" cols="50" value="message" onKeypress="inscriptionVerif('message');" onChange="inscriptionVerif('message');"/> </textarea>
<div class="verif3"> <img id="img_text" src="" alt="" /> </div>

<br/>


<input type="button" id="button_connexion" name="validation" value="envoyer" onclick="inscription();">
</form>
</div>
kimpix a écrit :
quand je regared les bug il me marque inscription is not a function mais dans ma ligne 1 de mon index alors que c'est l'endroit ou se trouve le doctype


As-tu bien appelé ton fichier javascript contenant les fonctions dans l'index ?

Exemple
<script type="text/javascript" language="javascript" src="js/functions.fct.js"></script>


Apparemment il ne trouve pas la fonction déjà ...
Oui, j'ai bien appelé ma fonction : <script src="script.js" type="text/javascript"></script>
mais en effet le problème semble être là, toutefois ca doit provenir de mon fichier index puisque c'est ici qu'il me soumet une erreur, je cherche....
Bon j'ai essayé onClick avec un c majuscule j'ai enlevé le point virgule je l'ai remis, je l'ai mis apres les guillemets,bref ça n'a pas marché
Modifié par kimpix (31 Jan 2012 - 20:39)
J'ai changé mon code javascript et ca marche :




function inscriptionVerif(id_champs)
{
var verif, valeur;
valeur=document.forms["inscription"].elements[id_champs].value;

if(id_champs == "mail")
{
var reg = new RegExp("^[a-zA-Z0-9_-]+@[a-zA-Z0-9-]+[.][a-zA-Z]{2,4}$") ;
var veriflogin=document.forms["inscription"].elements["nom"].value;
var tab_users;
tab_users = veriflogin.split("///");

if(reg.exec(valeur))
{
verif = true;
}
else
{
verif = false;

cpt = 1;
}

for( var g = 0, h = tab_users.length ; g < h; g++)
{
if(tab_users[g] == valeur || valeur.length<10 || valeur=="")
{
verif = false;
}
}
}

if(id_champs == "nom" || id_champs == "civilite" || id_champs == "objet" || id_champs == "message" )
{
if(valeur == "")
{
verif = false;
cpt = 1;
}
else
{
verif = true;
}
}


if(verif == false)
{
document.getElementById("img_"+id_champs).src='img/error.png';
cpt = 1;

}
else
{
document.getElementById("img_"+id_champs).src='img/valid.png';
cpt=0;
}

}




function envoyer()
{

var imgs = document.getElementsByTagName('img');
var tab_src;
var users=document.forms["inscription"].elements['nom'].value;

if(cpt == 0)
{
alert("Bonjour " + users+ ",\nMerci de nous avoir envoyé un message, nous vous répondrons au plus vite ! ");
document.forms["inscription"].elements["validation"].name = "validation";
validation.submit();
return true;


}
else
{
alert("Vous n'avez pas rempli tous les champs !");
return false;
}
}


La valeur du cpt n'était pas bonne. Je crois que c'étais pour ça. Maintenant j'ai un aautre problème, il faut que mon formulaire m'envois le message via php et là c'est pareil il ne semble pas reconnaitre que mon button est validé.


<?php

$go=0;
if (!empty($_POST['validation'])){

echo 'toto';

// On assigne les données du formulaire à des variables:
$nom=htmlentities ($_POST['nom']);
$civilite=htmlentities ($_POST['civilite']);
$mail=htmlentities ($_POST['mail']);
$objet=htmlentities ($_POST['objet']);
$message=htmlentities ($_POST['message']);
if ($nom=="" || $civilite=="" || $mail=="" || $objet=="" || $message=="") {



}
else {
//On détermine le ou les destinataires en fonction de l'objet

$destinataire="kimpix@hotmail.fr";

//On formate le message
//Partie commune
$msg="$civilite $nom\n$mail\n\nObjet : $objet\n\nVotre message : ";


// Découpage du message en plusieurs lignes
$message = wordwrap($message, 70);
$message = $msg.$message;

//On envoie le mail à impact

//Formatage du header
$headers = "From: $mail" . "\r\n" ."Reply-To: $mail" . "\r\n" ."X-Mailer: PHP/" . phpversion();
$sujet="Contact www.kimrose.fr";

//echo $headers;

//Envoie du mail
mail($destinataire, $sujet, $message, $headers);

$go=1;

}

}
//else echo "<a><font color='#FF0000'>=> Erreur, le code est incorrect</font></a>" ;



if ($go==1){

// On efface les variables:
unset($nom);
unset($objet);
unset($mail);
unset($civilite);
unset($message);}
?>

Il ne me renvois pas l'echo quand je le valide
Modifié par kimpix (01 Feb 2012 - 10:25)
Donc la le problème est tout autre, j'ai mis un type submit a mon bouton et la ca envoit, sauf que mon site utilise d'autres scripte javascript qui permette avec une seule page de dérouler les divs sur un écran. En gros ma page contact c'est une div sur la meme page que la home si vous voulez. Donc quand je fait le submit il me renvois sur la div home, en fait sur l'accueil du site et moi je voudrais qu'il me renvois sur ma page contact sauf que c'est pas une page, c'est juste une div. C'est pas derangeant si le formulaire est correct. S'il est incorrect parcontre genre l'utilisateur a oublier de formuler un champs, il ya un message d'erreur et pouf il retourne sur l'accueil donc c'est pas terrible comme experience. Il faudrais qu'il reste sur la page contact vous voyez ?
Finalement j'ai mis des required dans mes champs et du coup ca force le formulaire a rester sur sa page sans bouger de place et bien entendu il ya des petites info-bulles pour informer des champs manquants !!!!!