Comment utiliser le jQuery Datepicker avec une entrée de zone de texte:
$("#my_txtbox").datepicker({
// options
});
cela ne permet pas à l'utilisateur de saisir du texte aléatoire dans la zone de texte. Je veux que le Datepicker apparaisse lorsque la zone de texte obtient le focus ou que l'utilisateur clique dessus, mais je veux que la zone de texte ignore toute entrée utilisateur à l'aide du clavier (copier-coller, ou tout autre). Je souhaite remplir la zone de texte exclusivement à partir du calendrier Datepicker.
Est-ce possible?
jQuery 1.2.6
Datepicker 1.5.2
jquery
datepicker
Elliot Vargas
la source
la source
$("#my_txtbox").prop('readonly', true)
<input ... readonly="readonly" style="cursor:pointer; background-color: #FFFFFF">
Sur la base de mon expérience, je recommanderais la solution suggérée par Adhip Gupta:
Le code suivant ne laissera pas le type d'utilisateur de nouveaux personnages, mais va leur permettre de caractères de suppression:
De plus, cela rendra le formulaire inutile pour ceux qui ont désactivé JavaScript:
la source
readonly
attribut au champ via JS, vous vous assurez que s'ils ont désactivé JavaScript (et ne pourront donc pas utiliser le sélecteur de date), ils pourront toujours utiliser le formulaire via une saisie manuelle standard.$("#my_txtbox").prop('readonly', true)
;essayer
la source
Si vous réutilisez le sélecteur de date à plusieurs endroits, il serait possible de modifier la zone de texte également via JavaScript en utilisant quelque chose comme:
juste après / avant l'endroit où vous initialisez votre sélecteur de date.
la source
fait que la zone de texte perd sa valeur après la publication.
Vous devriez plutôt utiliser la suggestion de Brad8118 qui fonctionne parfaitement.
EDIT: pour le faire fonctionner pour IE, utilisez 'keydown' au lieu de 'keypress'
la source
ajoutez l'attribut readonly dans la jquery.
la source
Vous avez deux options pour y parvenir. (Pour autant que je sache)
Option A: rendez votre champ de texte en lecture seule. Cela peut être fait comme suit.
Option B: changer le curseur sur la mise au point. Réglez ti sur flou. cela peut être fait en configurant l'attribut
onfocus="this.blur()"
dans le champ de texte de votre sélecteur de date.Ex:
<input type="text" name="currentDate" id="currentDate" onfocus="this.blur()" readonly/>
la source
Après avoir initialisé le sélecteur de date:
la source
$(".project-date").datepicker().keydown(false);
Pour afficher le sélecteur de date pour obtenir le focus:
Si vous ne voulez pas de saisie utilisateur, ajoutez-la au champ de saisie
la source
Je viens de tomber sur ceci alors je partage ici. Voici l'option
https://eonasdan.github.io/bootstrap-datetimepicker/Options/#ignorereadonly
Voici le code.
HTML
JS
Voici le violon:
http://jsfiddle.net/matbaric/wh1cb6cy/
Ma version de bootstrap-datetimepicker.js est 4.17.45
la source
Cette démo le fait en plaçant le calendrier sur le champ de texte afin que vous ne puissiez pas le saisir. Vous pouvez également définir le champ de saisie en lecture seule dans le HTML pour être sûr.
la source
HTML
CSS
la source
Je sais que ce fil est ancien, mais pour d'autres qui rencontrent le même problème, qui implémentent la solution @ Brad8118 (ce que je préfère, car si vous choisissez de rendre l'entrée en lecture seule, l'utilisateur ne pourra pas supprimer la valeur de date insérée dans le sélecteur de date. s'il choisit) et doit également empêcher l'utilisateur de coller une valeur (comme @ErikPhilips a suggéré d'être nécessaire), je laisse cet ajout ici, qui a fonctionné pour moi: à
$("#my_txtbox").bind('paste',function(e) { e.preventDefault(); //disable paste });
partir d'ici https://www.dotnettricks.com/learn/ jquery / disable-cut-copy-and-paste-in-textbox-using-jquery-javascript et tout le script spécifique utilisé par moi (en utilisant le plugin fengyuanchen / datepicker à la place):la source
Au lieu d'ajouter en lecture seule, vous pouvez également utiliser onkeypress = "return false;"
la source
J'ai trouvé que le plugin jQuery Calendar, pour moi du moins, en général fonctionne mieux pour sélectionner les dates.
la source
la source
Voici votre réponse qui est un moyen de résoudre. Vous ne voulez pas utiliser jquery lorsque vous avez restreint l'entrée utilisateur dans le contrôle de zone de texte.
la source
$ ("# my_txtbox"). prop ('readonly', true)
a fonctionné comme un charme ..
la source
Au lieu d'utiliser la zone de texte, vous pouvez également utiliser le bouton. Fonctionne mieux pour moi, où je ne veux pas que les utilisateurs écrivent la date manuellement.
la source
Je sais que cette question est déjà répondue, et la plupart suggèrent d'utiliser l'
readonly
attribution.Je veux juste partager mon scénario et répondre.
Après avoir ajouté un
readonly
attribut à mon élément HTML , j'ai rencontré un problème selon lequel je ne suis pas en mesure de rendre cet attribut aussirequired
dynamique.Même essayé de définir à la fois
readonly
etrequired
au moment de la création HTML.Je vais donc suggérer de ne pas utiliser
readonly
si vous souhaitez le définirrequired
également.Utilisez plutôt
Cela permet d'appuyer sur la
tab
touche uniquement.Vous pouvez ajouter d'autres codes clés que vous souhaitez contourner.
Je code ci-dessous depuis que j'ai ajouté les deux
readonly
etrequired
il soumet toujours le formulaire.Après le retrait,
readonly
cela fonctionne correctement.https://jsfiddle.net/shantaram/hd9o7eor/
la source
remplacez l'ID du sélecteur de temps: IDofDatetimePicker par votre identifiant.
Cela empêchera l'utilisateur de saisir d'autres entrées au clavier, mais il pourra tout de même accéder à la fenêtre contextuelle de l'heure.
$ ("# my_txtbox"). keypress (fonction (événement) {event.preventDefault ();});
Essayez cette source: https://github.com/jonthornton/jquery-timepicker/issues/109
la source
Cette question a beaucoup de réponses plus anciennes et la lecture seule semble être la solution généralement acceptée. Je pense que la meilleure approche dans les navigateurs modernes consiste à utiliser
inputmode="none"
la balise d'entrée HTML:ou, si vous préférez le faire en script:
Je ne l'ai pas testé de manière approfondie, mais il fonctionne bien sur les configurations Android avec lesquelles je l'ai utilisé.
la source
Ou vous pouvez, par exemple, utiliser un champ masqué pour stocker la valeur ...
et dans la $ ("# my_txtbox"). datepicker ({options:
la source
Si vous souhaitez que l'utilisateur sélectionne une date dans le sélecteur de date mais que vous ne souhaitez pas que l'utilisateur tape dans la zone de texte, utilisez le code suivant:
la source