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.
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
Le 7/9/09 2:28 PM, Denis Bitouzé a écrit :
Le mercredi 08/07/09 à 23h29,
SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> 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)
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)