2009-04-22 8 views
0

J'utilise le calendrier du sélecteur de dates jQuery dans un formulaire. Une fois soumis, le formulaire transmet les paramètres via l'URL à un site tiers. Tout fonctionne bien, sauf pour une chose. Si la valeur insérée dans le champ date par le calendrier datepicker est supprimée ou si la date par défaut, qui est dans le formulaire au chargement de la page, est supprimée et le formulaire est soumis, j'obtiens l'erreur suivante:jQuery/JavaScript Validation de formulaire de date

" La conversion de la chaîne "" en type "Date" n'est pas valide. "

La solution à mon problème est très simple, je veux valider le champ de texte où la date est soumise et envoyer une date par défaut (date actuelle) si le champ est vide pour une raison quelconque. Le problème est que je suis terrible à Javascript et ne peux pas comprendre comment faire ceci.

Voici le code de formulaire pour mon champ de date.

[var('default_date' = date)] 
<input type="text" id="datepicker" name="txtdate" value="[$default_date]" onfocus="if (this.value == '[$default_date]') this.value = '';" onchange="form.BeginDate.value = this.value; form.EndDate.value = this.value;" /> 
      <input type="hidden" name="BeginDate" value="[$default_date]"/> 
      <input type="hidden" name="EndDate" value="[$default_date]"/> 

Répondre

3

Ceci est vraiment vieux et probablement résolu, mais que diable.

La manière la plus simple d'y parvenir est d'ajouter un peu plus de javascript à l'événement onchange de l'entrée.

onchange="if(this.value.length > 0) { form.BeginDate.value = form.EndDate.value = this.value; } else { form.BeginDate.value = form.EndDate.value = '[$default_date]'; } " /> 

bien sûr leur sont encore toutes sortes d'autres problèmes liés à la validation de la date, mais cela est un moyen simple de vérifier une valeur vide et retourner un défaut en fonction de la structure de votre code actuel.

Questions connexes