OVH Cloud OVH Cloud

Passer une valeur via une ancre plutôt que via un

11 réponses
Avatar
Denis Bitouzé
Bonjour,

je souhaite qu'une date, saisie dans un de mes formulaires, obéisse à
un certain format de saisie.

Plutôt que créer un masque de saisie ou effectuer un contrôle a
posteriori, je souhaite que cette date soit saisie, lorsqu'un clic sur
le contrôle a lieu, via un script javascript qui affiche un calendrier :

http://www.garrett.nildram.co.uk/calendar/scw.htm

Le problème est que, si le contrôle en question est une boîte de saisie
(input de type text), l'utilisateur peut effectuer la saisie à la main
et donc ne pas respecter le format souhaité.

J'ai donc pensé à faire saisir la date en cliquant sur une ancre. Le
problème est que celle-ci ne passe aucune valeur dans $_POST.

J'ai essayé de faire remplir, par un script javascript, le contenu de
l'ancre dans un input caché mais je n'y parviens pas.

Auriez-vous une idée de la façon dont procéder ?

Merci d'avance.
--
Denis

1 réponse

1 2
Avatar
SAM
Le 7/9/09 2:28 PM, Denis Bitouzé a écrit :
Le mercredi 08/07/09 à 23h29,
SAM a écrit :

Je ne comprends pas bien ta question.

Ce calendrier fonctionne très bien



Je comprends que tu n'aies pas compris : ceci vient de ce que
j'ignorais l'attribut readonly.



Heu ... ça existe depuis ... houlala ! ... le siècle dernier.
(pratique pour condamner/bloquer un bouton submit le temps d'attendre le
retour du formulaire)

Petite révision du HTML ? au moins les inputs :
<http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.4>
<http://www.w3.org/TR/REC-html40/interact/forms.html#adef-readonly>
et les mêmes en fr :
<http://www.la-grange.net/w3c/html4.01/interact/forms.html#h-17.4>
<http://www.la-grange.net/w3c/html4.01/interact/forms.html#adef-readonly>
Pour le XHTML ce qui nous intéresse ici est au 4.5 de :
<http://www.la-grange.net/w3c/xhtml1/#diffs>
d'ou : <input readonly="readonly" />

Sinon, effectivement, le calendrier fonctionne à merveille, comme je
l'avais constaté :)



Ha! Bon! Ouf !

Merci !



Ceci étant c'est peut-être un peu "lourd" tout ce calendrier juste pour
faire :
<p>Date : <input name="laDate" /> (au format: JJ/MM/AAAA)

Bon! à la rigueur un petit JS de vérif ?
<p>Date (au format: JJ/MM/AAAA):
<input name="laDate" onchange="dater(this)" />

function dater(quoi) {
if(!quoi.value.match(/dd/dd/dddd/)) {
alert('la date n'est pas au bon format');
setTimeout(function(){quoi.focus();quoi.select();},100);
}
}

Et, en tous cas, faire de même en PHP. (la vérif du format)
sans doute en un peu plus pointu ?
(le jour au jour et le mois au mois, pour le moins)

--
sm
1 2