pourquoi jquery datepicker ne fonctionne pas sur textarea mais uniquement sur les entrées

S’il vous plaît aidez-moi, je suis désemparé. Lorsque j’essaie d’ouvrir le sélecteur de date de l’interface utilisateur jquery et de l’attacher à la balise input, cela fonctionne parfaitement, mais lorsque j’essaie de l’attacher à textarea, rien ne se passe.

 $(function() { $("#${data_picker}").datepicker(); });  ---- This will work ----  ---- This doesn't work ----  

Pourquoi???

ps bien sûr ils ne sont pas dans la même page ensemble, c’est seulement l’entrée ou seulement le texte dans la page.

Version courte: datepicker n’est tout simplement pas pris en charge avec un élément , plus précisément avec les éléments et

pour le mode en ligne et uniquement éléments . Voici le code approprié faisant ces vérifications:

 var nodeName = target.nodeName.toLowerCase(); var inline = (nodeName == 'div' || nodeName == 'span'); if (!target.id) { this.uuid += 1; target.id = 'dp' + this.uuid; } var inst = this._newInst($(target), inline); inst.settings = $.extend({}, settings || {}, inlineSettings || {}); if (nodeName == 'input') { this._connectDatepicker(target, inst); } else if (inline) { this._inlineDatepicker(target, inst); } 

J’ai mis en place un moyen de faire en sorte que datepicker fonctionne avec textareas dans mon application.

J’ai ajouté un champ de saisie de texte dans mon code html, avec style="display:none" pour que ce champ soit masqué, mais le bouton du calendrier est affiché sous forme d’image. L’utilisateur clique sur l’image et lorsqu’il sélectionne une date, la fonction ‘onSelect’ implémentée ci-dessous ajoute la valeur à une zone de texte. Je pense que l’implémentation originale utilise .append () pour append de la valeur à un texte saisi. C’est pourquoi cela ne fonctionne pas pour textareas … ma solution utilise val () et elle a fonctionné comme prévu pour moi. je le partage avec vous

 jQuery(inputEl).datepicker({ showOn: "button", buttonImage: "../image/calendar.gif", buttonImageOnly: true, buttonText: "", onSelect: function(selectedDate) { var textStr = jQuery(txtAreaEl).val(); textStr = selectedDate; jQuery(txtAreaEl).val(textStr); } });