tautie
Messages postés40Date d'inscriptionmardi 19 décembre 2000StatutMembreDernière intervention11 juillet 2010
-
24 nov. 2008 à 15:23
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 2015
-
4 déc. 2008 à 15:19
J'ai un formulaire qui fonctionne très bien, mais je veux rendre les champs obligatoires (sauf le message), et le champs "civilité" me pose problème avec ses trois boutons radio, le reste a l'air de fonctionner.
Comment dois-je faire ?
Voilà mes scripts:
formulaire.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Envoyer les données</title>
<SCRIPT LANGUAGE="JavaScript">
window.defaultStatus="Champs Obligatoires";
</SCRIPT>
<script>
function checkrequired(which){
var pass=true
if (document.images){
for (i=0;i<which.length;i++){
var tempobj=which.elements[i]
if (tempobj.name.substring(0,8)=="required"){
if (((tempobj.type=="text"||tempobj.type=="textarea")&&tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s"&&tempobj.selectedIndex==-1)){
pass=false
break
}
}
}
}
if (!pass){
alert("Vous n'avez pas rempli tous les champs obligatoires !!!")
return false
}
else
return true
}
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201515 24 nov. 2008 à 16:42
l'extrait nécessaire suffisait !
<script type= "text/javascript">
function checkrequired(formul)
{ for( var n=0;n<document.frm.civilite.length; n++ )
{ if ( document.frm.civilite[n].checked )
{ return true; } // le formulaire sera envoyé ( voir les autres tests ? )
}
return false; // formualire non soumis
}
</script>
<form name="frm"
onSubmit ="return checkrequired(this);"
method="POST" action="javascript:alert('ok');" > <!-- pour les test -->
tautie
Messages postés40Date d'inscriptionmardi 19 décembre 2000StatutMembreDernière intervention11 juillet 2010 29 nov. 2008 à 17:54
Je me suis mal eprimée, excuse-moi, mais c'est parce qu'au viveau de ce formulaire, étant encore au niveau des essais, j'ai créer une page formulaire.html rien que pour cela.
Mais en fait, le formulaire à proporement dit sera inclus dans ma page coordonnees.html (donc le fichier formulaire.html n'existera plus) et sera piloté par le fichier
mail.php.
Et c'est pour la redirection que je parle de index.html (c'est un exemple) cela ferait revenir le visiteur sur la page d'accueil après qu'il ait envoyé son mail.
Je vais essayé ce que tu proposes.
<meta http-equiv="Refresh" content="0; URL=index.html">
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutModérateurDernière intervention15 juillet 201137 24 nov. 2008 à 16:08
Salut,
Avec une feuille de style CSS ca serait plus claire comme code ;-)
Id = id de la div englobante ou du formulaire par exemple
function checkUneCaseCochee(id)
{
var cbs = id.getElementsByTagName('input');
for (var i 0, cb cbs[ i ]; i < cbs.length; cb = cbs[++i]){ if (cb.type 'checkbox' || cb.type 'radio'){
if(cb.checked) return true;
}
}
return false;
}
tautie
Messages postés40Date d'inscriptionmardi 19 décembre 2000StatutMembreDernière intervention11 juillet 2010 24 nov. 2008 à 17:49
Re bonjour Bul3, merci de répondre si vite et dans le sens de ma question.
Je vais essayer d'introduire ce que tu m'indique dans mon script.
Je te tiens au courant.
(Le menu dynamique fonctionne à merveille !)
Tautie
Vous n’avez pas trouvé la réponse que vous recherchez ?
tautie
Messages postés40Date d'inscriptionmardi 19 décembre 2000StatutMembreDernière intervention11 juillet 2010 27 nov. 2008 à 14:56
J'ai réussi à "bidouiller" un script qui fonctionne et qui vérifie tout les champs obligatoires
:
<script type="text/javascript">
function checkrequired(which){
var pass=true
if ((document.forms[0].civilite[0].checked==false) && (document.forms[0].civilite[1].checked==false) && (document.forms[0].civilite[2].checked==false))
{ alert("Veuillez entrer votre civilité!" );
return false; }
if (document.images){
for (i=0;i<which.length;i++){
var tempobj=which.elements[i]
if (tempobj.name.substring(0,8)=="required"){
if (((tempobj.type=="text"||tempobj.type=="textarea")&&tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s"&&tempobj.selectedIndex==-1)){
pass=false
break
}
}
}
}
if (!pass){
alert("Vous n'avez pas rempli tous les champs obligatoires !!!")
return false
}
else
return true
}
</script>
C'est déjà ça !
Je voudrais maintenant savoir, si il est possible au moment ou l'on clique pour envoyer le message il apparaisse une alerte "message envoyé" et que l'on revienne sur la page du fomulaire à nouveau mais avec les champs vides., car pour l'instant quand j'envoie le formulaire j'arrive sur une page blanche
.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201515 27 nov. 2008 à 15:11
>>il apparaisse une alerte "message envoyé"
alert("message envoyé")
mais bof, à mon avis : évite
>>et que l'on revienne sur la page du formulaire à nouveau mais avec les champs vides.,
re bof....
le formulaire est envoyé à la page contenu dans action= du form
s'il n'y a rien, c'est la page qui envoie qui est appelée
les champs sont ( normalement ? ) effacés, mais la page
qui reçoit fait ce qu'elle veut.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201515 27 nov. 2008 à 18:16
c'est ce que va créer mail.php qui sera affiché.
ici html et body ( et quasi rien d'autre ) ==> une page blanche.
soit tu y mets le formulaire, soit tu fais le mail
dans la page qui contient le formulaire, soit tu rediriges
vers la page du formulaire ( ce serait dommage ), soit ....
tautie
Messages postés40Date d'inscriptionmardi 19 décembre 2000StatutMembreDernière intervention11 juillet 2010 27 nov. 2008 à 18:51
Là, je suiscomplètement perdue !
J'ai mes deux fichiers; formulaire.html et mail.php, si je veux rediriger vers ma page d'accueil; index.html, comment dois-je procéder, et dans quel fichier dois-je intervenir ?
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201515 28 nov. 2008 à 08:37
>>dans quel fichier dois-je intervenir ?
là où tu veux ( ou tu dois ! )
>> si je veux rediriger vers ma page d'accueil
la plus mauvaise solution, certainement, mais
regarde en html <meta http-equiv="Refresh" content="0; URL=index.php">
ou rechercher "redirection" en php....
"le mieux" (?) est de "tout" mettre dans une seule et même page
( même si tu utilises des include pour la lisibilité )
tautie
Messages postés40Date d'inscriptionmardi 19 décembre 2000StatutMembreDernière intervention11 juillet 2010 28 nov. 2008 à 19:15
Pourquoi rediriger vers la page d'accueil est une mauvaise solution ?
Et si je me sers de : <meta http-equiv="Refresh" content="0; URL=index.php"> c'est bienindex.html et non pas index.php puisque mon fichier c'est index.html,
et ce code je dois le placer où ?
"le mieux" est de "tout" mettre dans une seule et même page : qu'est ce que tu veux dire par là ?
Plus j'avance, plus j'ai l'impression de "nager".
Merci de ta patience.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201515 29 nov. 2008 à 10:24
ben tu charges p1.php qui lance p2.php qui lancera p0.php
tu peux tou faire dans la même page
ou au moins en supprimer une.
ton fichier n'est pas index.html !! si ? ou alors j'ai rien compris !
tu as index.html puis formulaire.html puis mail.php : c'est pas ce que tu disais ?
donc... tu dois être dans mail.php lorsque mail en php est lancé ? non ?
si tu veux rediriger... il faut le faire là où tu es, sinon c'est pas fait...
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201515 29 nov. 2008 à 18:26
coordonnees.html ou formulaire.html.... c'est pareil.
>>Je vais essayé ce que tu proposes. <meta http-equiv="Refresh" content="0; URL=index.html">
si tu y tiens à tout prix....
tautie
Messages postés40Date d'inscriptionmardi 19 décembre 2000StatutMembreDernière intervention11 juillet 2010 3 déc. 2008 à 17:00
Bonjour Bul3, j'ai essayé <meta http-equiv="Refresh" content="0; URL=index.html"> pour la redirection et cela fonctionne très bien.
Merci ! Tout fonctionne !
Il me reste maintenant à introduire mon formulaire dans la cellule d'un tableau, je fais l'essai en ligne demain, je te tiens au courant.