为什么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); } });