OVH Cloud OVH Cloud

saisie obligatoire dans champ form

18 réponses
Avatar
jeanclaude
bonjour à tou
j'ai crée un formulaire ou j'aimerai y intégrer un code rendant obligatoire la saisie de certain champ texte, meme problème pour un bouton radio qui doit etre coché obligatoirement, en clair qu'il y ai un controle du formulaire avant que l'action mailto fonctionne
merci pour votre aid

<form action="mailto:****@yahoo.fr" method="post" enctype="text/plain" name="demande de devis
onSubmit="return validation();"

<input length="20" name="nom" size="30"

<input type="radio" name="oui" value="oui"
<input type="radio" name="non" value="non"

<input name="SUBMIT" type="SUBMIT" value="Envoyer"
<input type="reset" name="Submit" value="Annuler"
<input type="button" value="Imprimer" name="Imprime" onClick="javascript:window.print () "

--
jeanclaude

-----------------------------------------------------------------------
Voir theme: http://www.frbox.net/viewtopic-498448.htm

Envoyé de http://www.frbox.ne

10 réponses

1 2
Avatar
O.L.
jeanclaude avait soumis l'idée :
bonjour à tous
j'ai crée un formulaire ou j'aimerai y intégrer un code rendant obligatoire
la saisie de certain champ texte, meme problème pour un bouton radio qui
doit etre coché obligatoirement, en clair qu'il y ai un controle du
formulaire avant que l'action mailto fonctionne. merci pour votre aide

<form action="mailto:****@yahoo.fr" method="post" enctype="text/plain"
name="demande de devis" onSubmit="return validation();">

<input length="20" name="nom" size="30">

<input type="radio" name="oui" value="oui">
<input type="radio" name="non" value="non">

<input name="SUBMIT" type="SUBMIT" value="Envoyer">
<input type="reset" name="Submit" value="Annuler">
<input type="button" value="Imprimer" name="Imprime"
onClick="javascript:window.print () ">


function validation() {
if(document.getElementsByName('nom')[0].value=='') {alert("Vous devez
mettre votre nom !"); return false;}
if(document.getElementsByName('nom')[0].value=='' &&
document.getElementsByName('nom')[1].value=='') {alert("Vous devez
cocher une case !"); return false;}
}

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net

Avatar
ASM
bonjour à tous
j'ai crée un formulaire ou j'aimerai y intégrer un code rendant obligatoire la saisie de certain champ texte, meme problème pour un bouton radio qui doit etre coché obligatoirement, en clair qu'il y ai un controle du formulaire avant que l'action mailto fonctionne.
merci pour votre aide

<form action="mailto:****@yahoo.fr" method="post" enctype="text/plain" name="demande de devis"
onSubmit="return validation();">

<input length="20" name="nom" size="30">

<input type="radio" name="oui" value="oui">
<input type="radio" name="non" value="non">


ces radios boutons ne sont pas terribles

des radios boutons d'une même série doivent avoir le *même* nom

on les distingue alors par leur value ('oui, 'non', '1', '2', 'truc', ...)

vous préférez les :<br />
sucettes : <input type="radio" name="Prefere" value="sucettes"><br />
ou les <br />
bonbons : <input type="radio" name="Prefere" value="bonbons">

<input name="SUBMIT" type="SUBMIT" value="Envoyer">
<input type="reset" name="Submit" value="Annuler">


et là je suppose que c'est un test pour voir si le navigateur
et/ou le serveur va se mélanger les pinceaux ? :-)

<input name="Envoi" type="submit" value="Envoyer">
<input name="RaZ" type="reset" value="Annuler">


<input type="button" value="Imprimer" name="Imprime" onClick="javascript:window.print () ">


function validation() {
var f = document.forms['demande de devis'];
if(f.nom.length<1) {
alert('Remplir le champ "nom"');
f.nom.focus();
f.nom.select();
return false;
}
var okúlse;
for(var i=0;i<f.Prefere.length;i++)
if(f.Prefere[i].checked) ok=true;
if(!ok) {
alert('merci de donner votre préférence');
return false;
}
return true;
}

<form onsubmit="return validation();" ...

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
bruno at modulix
jeanclaude wrote:
bonjour à tous j'ai crée un formulaire ou j'aimerai y intégrer un
code rendant obligatoire la saisie de certain champ texte, meme
problème pour un bouton radio qui doit etre coché obligatoirement,
en clair qu'il y ai un controle du formulaire avant que l'action
mailto fonctionne.


Compter sur javascript pour ça est illusoire. Il suffit que
l'utilisateur ait désactivé javascript pour bypasser cette vérif.

Si tu a vraiment besoin d'une validation sérieuse, il faut la faire côté
serveur. La validation en Javascript n'est qu'un confort supplémentaire
pour l'utilisateur et le serveur.

Mes deux centimes...
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in ''.split('@')])"

Avatar
ASM
jeanclaude wrote:

La validation en Javascript n'est qu'un confort supplémentaire
pour l'utilisateur et le serveur.


çà va de soi

le JS n'est qu'une béquille

Dans le cas présent, la béquille évite à ceux qui ont activé
leur javascript de faire des aller et retour avec le serveur
(si un autre contrôle a été prévu côté serveur bien sûr)
et tant pis pour les autres.
Après tout, n'avaient qu'à faire attention ! Non mais ! Des fois !
Déjà sympa qu'on les assiste un poil avec un chouia de JS.

Et d'abord pourquoi qu'y z'ont désactivé leur JS ?
hein ? j'vous l'demande bien ?! les inconsidérés !

au fait, avec
action="mailto:blabla"
le serveur peut contrôler çà et renvoyer le form à compléter ?
en php par exemple ?


--
Stephane Moriaux et son [moins] vieux Mac

Avatar
bruno at modulix
ASM wrote:

(snip)

au fait, avec
action="mailto:blabla"
le serveur peut contrôler çà et renvoyer le form à compléter ?
en php par exemple ?


Pas que je sache, non. C'est le client qui envoie le mail. C'est bien
pour ça que je faisais remarquer à l'OP que la validation javascript ne
garantissait rien (si l'action avait été un post vers un script PHP, CGI
ou autre, j'aurais supposé qu'une seconde validation avait lieu sur le
serveur de toutes façons...).

--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in ''.split('@')])"

Avatar
O.L.
au fait, avec
action="mailto:blabla"
le serveur peut contrôler çà et renvoyer le form à compléter ?
en php par exemple ?


Euh, je suis pas sûr de bien comprendre, mais je pense que oui :

L'utilisateur remplit son formulaire, il clique sur son bouton Submit,
ça arrive au script PHP caché dans une IFRAME, qui vérifie les entrées
et éventuellement les corrige, puis il "affiche" un formulaire
invisible (display:none) ayant comme attribut action le fameux mailto:,
et il met aussi un petit JavaScript qui va submitter automatiquement le
formulaire.
Pour l'utilisateur, bah il remplit son truc, il clique, et il re-clique
dans la fenêtre de confirmation. Bref, pour lui ça change rien, mais
pourtant les entrées ont été contrôlées ...

@+

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net

Avatar
ASM

au fait, avec
action="mailto:blabla"
le serveur peut contrôler çà et renvoyer le form à compléter ?
en php par exemple ?



Euh, je suis pas sûr de bien comprendre,


je voulais juste faire remarquer que l'action
passe par une gestion directe par le navigateur (et ou son mailleur associé)
et que donc, à priori, il n'est pas prévu de contôle via serveur
du contenu du form
En conséquence la petite béquille JS, même si elle n'est pas parfaite,
apporte néanmoins un plus.

et mon interrogation complémentaire :
avec un action="mailto:blabla"
peut-on cour-circuiter l'envoi du mail et ouvrir un *.php à la place?


mais je pense que oui :

L'utilisateur remplit son formulaire, il clique sur son bouton Submit,
ça arrive au script PHP caché dans une IFRAME, qui vérifie les entrées
et éventuellement les corrige, puis il "affiche" un formulaire invisible
(display:none) ayant comme attribut action le fameux mailto:, et il met
aussi un petit JavaScript qui va submitter automatiquement le formulaire.
Pour l'utilisateur, bah il remplit son truc, il clique, et il re-clique
dans la fenêtre de confirmation. Bref, pour lui ça change rien, mais
pourtant les entrées ont été contrôlées ...


Là, bien que je capte l'idée d'un truc détourné (utilisant tt de même du JS),
je dois avouer je n'ai pas bien saisi les méandres du bazar :-)


--
Stephane Moriaux et son [moins] vieux Mac


Avatar
O.L.
ASM a couché sur son écran :
et mon interrogation complémentaire :
avec un action="mailto:blabla"
peut-on cour-circuiter l'envoi du mail et ouvrir un *.php à la place?


Tu veux dire, changer l'attribut action du formulaire ? :
<form id=MyForm action=mailto:...
MyForm.action = 'myscript.php';

mais je pense que oui :

L'utilisateur remplit son formulaire, il clique sur son bouton Submit, ça
arrive au script PHP caché dans une IFRAME, qui vérifie les entrées et
éventuellement les corrige, puis il "affiche" un formulaire invisible
(display:none) ayant comme attribut action le fameux mailto:, et il met
aussi un petit JavaScript qui va submitter automatiquement le formulaire.
Pour l'utilisateur, bah il remplit son truc, il clique, et il re-clique
dans la fenêtre de confirmation. Bref, pour lui ça change rien, mais
pourtant les entrées ont été contrôlées ...


Là, bien que je capte l'idée d'un truc détourné (utilisant tt de même du JS),
je dois avouer je n'ai pas bien saisi les méandres du bazar :-)


J'aime les trucs en zig-zag ;)
1) le formulaire s'envoie, le script le recois
2) le script écrit un code HTML contenant un formulaire déjà rempli
(avec les données reçues et vérifiées)
3) un petit JS envoie automatiquement ce nouveau formulaire
(action=mailto:)

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net


Avatar
ASM
ASM a couché sur son écran :

et mon interrogation complémentaire :
avec un action="mailto:blabla"
peut-on cour-circuiter l'envoi du mail et ouvrir un *.php à la place?



Tu veux dire, changer l'attribut action du formulaire ? :
<form id=MyForm action=mailto:...


non je pars de l'idée du post initial avec cet action là (mailto)
et que donc : c'est à respecter sans changement

MyForm.action = 'myscript.php';


Là, si on attaque du php en direct

J'aime les trucs en zig-zag ;)
1) le formulaire s'envoie, le script le recois
2) le script écrit un code HTML contenant un formulaire déjà rempli
(avec les données reçues et vérifiées)


et avec cette fois l'action="mailto;
et hop demande confirmation par le bouton submit

3) un petit JS envoie automatiquement ce nouveau formulaire
(action=mailto:)


ben ... ce n'est pas la peine d'avoir du JS dans ce cas
ni de ziz-zag via des iframes

çà doit même pouvoir se faire en ssi

reste à trouver le truc pour revenir au site
une fois qu'enfin le form a été mailé.

--
Stephane Moriaux et son [moins] vieux Mac


Avatar
O.L.
Il se trouve que ASM a formulé :
ASM a couché sur son écran :

et mon interrogation complémentaire :
avec un action="mailto:blabla"
peut-on cour-circuiter l'envoi du mail et ouvrir un *.php à la place?



Tu veux dire, changer l'attribut action du formulaire ? :
<form id=MyForm action=mailto:...


non je pars de l'idée du post initial avec cet action là (mailto)
et que donc : c'est à respecter sans changement


Hein ?

MyForm.action = 'myscript.php';


Là, si on attaque du php en direct

J'aime les trucs en zig-zag ;)
1) le formulaire s'envoie, le script le recois
2) le script écrit un code HTML contenant un formulaire déjà rempli (avec
les données reçues et vérifiées)


et avec cette fois l'action="mailto;
et hop demande confirmation par le bouton submit


Pas forcément : tout peut être invisible et se faire à l'insu
(quasiment) de l'utilisateur ...

3) un petit JS envoie automatiquement ce nouveau formulaire
(action=mailto:)


ben ... ce n'est pas la peine d'avoir du JS dans ce cas
ni de ziz-zag via des iframes


Si :p

çà doit même pouvoir se faire en ssi

reste à trouver le truc pour revenir au site
une fois qu'enfin le form a été mailé.


Mmm :-|

J'ai comme l'impression qu'on a pas le même truc en tête tout les 2 ;-)

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net



1 2