2010-06-30 8 views
0

J'ai un champ de saisie et en cliquant sur ce que je vais montrer un sélecteur de date pour sélectionner la date. Je voudrais toujours faire ce champ sélectionner en utilisant à partir de ce sélecteur et non en tapant. la raison en est, je suis juste en train de modifier ce champ et je ne veux pas toucher tout le code pour valider ce champ. J'ai donné suffisamment d'options déroulantes pour que les utilisateurs puissent les sélectionner dans le menu déroulant, donc je préfère accepter les entrées en utilisant cette sélection et non en tapant. Si je permets de taper, il y a des chances que les utilisateurs puissent changer l'année en une année passée et cela annule tout.html options de champ de saisie

ce qui a trait

+3

J'espère que vous ne faites pas toute votre validation en utilisant JS, car il peut être facilement désactivé et les utilisateurs peuvent faire/envoyer ce qu'ils veulent. – quantumSoup

+1

même si JS est activé, il est trivial de modifier un formulaire HTML (ex: pour que l'utilisateur puisse ajouter une nouvelle option pour "2005" par exemple). La validation doit toujours être effectuée côté serveur. – nickf

Répondre

1

vous pouvez essayer d'utiliser un bouton pour le datepicker et la sélection d'une date fixée d'un champ caché et une étiquette visible.

Regardez quelques-uns des exemples dans et autour de celle-ci:

http://jqueryui.com/demos/datepicker/#icon-trigger

+0

C'est le même lien que j'ai utilisé pour le sélecteur de date, mais merci d'avoir signalé l'option icon-trigger. pour une raison quelconque, le champ est modifiable en tapant. Dans certains sites, ils ont ce champ et l'icône, la valeur ne change que par la sélection d'icônes. je ne suis pas en mesure d'obtenir votre idée d'étiquette.Ceci est ce que j'ai . Je stocke l'i/p sur db – Jay

3

Le problème avec forcer les utilisateurs à utiliser un sélecteur de date est que, à court d'utiliser les entrées de formulaire HTML5, vous êtes obligé d'utiliser JavaScript pour que le sélecteur fonctionne. Si JavaScript est désactivé, votre utilisateur devra entrer la valeur à la main, en détruisant la protection d'édition que vous avez mise sur le champ en premier lieu. Cette entrée devrait être validée de toute façon. En outre, laisser votre entrée sans validation pourrait vous rendre vulnérable aux attaques par injection SQL, lorsqu'un visiteur utilise un autre outil (comme Firebug, par exemple) pour envoyer manuellement des données non filtrées via cette entrée et éventuellement dans votre base de données. Regardez, je sais que la validation de formulaire est une douleur, mais essayer de verrouiller votre entrée parce que vous ne voulez pas la filtrer est une recette pour les problèmes.

+0

Je suis d'accord avec vous. mon approche conduira à quelques injections. J'ai raté l'option firebug et des choses comme ça.je vais travailler sur la validation. c'est un peu désordonné car d'autres parties du code sont déjà présentes et je finirai par tout modifier. – Jay

Questions connexes