为什么jquery datepicker不能在textarea上工作,只能在输入上工作

请帮助我,我很无能为力。 当我尝试打开jquery UI的日期选择器并将其附加到输入标签时它完美地工作,但是当我尝试将它附加到textarea时,没有任何事情发生。

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

为什么???

ps当然它们不在同一页面中,它只是输入或页面中的textarea。

简短版本: 元素不支持datepicker,特别是内联模式的

元素支持,否则只支持元素 。 以下是执行这些检查的相关代码:

 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); } 

我实现了一种方法,使我的应用程序中的textareas使用datepicker。

我在我的html代码中添加了一个输入文本字段,其中style="display:none"以便隐藏此字段,但日历按钮显示为图像。 用户点击图像,当他选择日期时,我在下面实现了’onSelect’function,将值添加到文本区域。 我认为原始实现使用.append()将值添加到输入文本..这就是为什么它不适用于textareas …我的解决方案是使用val()并且它按预期工作,所以我与你分享

 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); } });