Bonjour
J'ai 20 ou 30 formulaires qui utilisent tous le m�me fichier javascript mutualis� pour le contr�le de saisie g�n�ral (champs obligatoire, validit� des dates, ...) lors de l'envoi. Pour aider � la saisie des dates, j'utilise le script Dynamic Date Selector http://javascriptkit.com/script/scri...selector.shtml, en autorisant aussi la saisie libre dans le champ. Ce script est aussi dans mon fichier mutualis�.
Seulement l� j'ai un formulaire � faire avec plusieurs dates et je dois v�rifier la coh�rence des dates entre elles (�chelonnement), ainsi que par rapport � d'autres dates pr�cis�es lors de la cr�ation de la page en PHP.
Alors v�rifier lors de l'envoi cela me fait mal au ventre: car ou je duplique le code du Dynamic Date Selector et le code g�n�ral de v�rification du formulaire en y ajoutant mes fonctions de v�rification dans un nouveau fichier javascript rien que pour cette page, ou j'ajoute mon code au fichier existant et il sera charg� dans 20 ou 30 pages qui n'en n'ont rien � faire.
C'est pour �a que j'essaye de v�rifier lors de la saisie, en attachant des �v�nement onChange et onBlur � chaque champ de saisie de date.
onChange : cela fonctionne tr�s bien si l'utilisateur modifie directement la valeur. Mais il n'est pas d�clench� si la date a �t� choisie avec le Dynamic Date Selector (normal). Je r�cup�re bien la valeur saisie.
onBlur : il est bien d�clench� si on choisit une date avec le Dynamic Date Selector, mais le probl�me c'est qu'en lisant le champ je r�cup�re l'ancienne valeur. Je ne comprend pas pourquoi.
J'ai donc essay� de travaill� avec une variable globale; le code est :
Et bien dans ds_element.value ou ds_element.innerHTML je trouve l'ancienne valeur alors que la valeur s�lectionn� avec le Dynamic Date Selector est bien dans le champ. Comment est-ce possible ?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 var ds_element; function ds_onclick(d, m, y) { // Hide the calendar. ds_hi(); // Set the value of it, if we can. if (typeof(ds_element.value) != 'undefined') { ds_element.value = ds_format_date(d, m, y); // Maybe we want to set the HTML in it. } else if (typeof(ds_element.innerHTML) != 'undefined') { ds_element.innerHTML = ds_format_date(d, m, y); // I don't know how should we display it, just alert it to user. } else { alert (ds_format_date(d, m, y)); } ds_element.focus(); }
Partager