【发布时间】:2013-02-14 16:10:54
【问题描述】:
我遇到了 jquery datepicker 的问题。
我将 jquery datepicker 附加到 javascript 函数中动态生成的文本框。
问题是日期选择器在第一次点击时没有弹出, 如果我在 javascript 函数中放置断点或警报,则日期选择器会在第一次单击时弹出。
这是我正在使用的 JavaScript 函数:
function CalendarPopUpOnClick(TextBoxId, HiddenFieldId) {
if (TextBoxId != undefined) {
$('#' + serverIdPrefix + TextBoxId).keypress(function (event) {
event.preventDefault();
});
var dateTimeDueDate = $('#' + serverIdPrefix + HiddenFieldId).val();
var dateTimeArrDueDate = dateTimeDueDate.split(" ");
var dateOnlyDueDate = dateTimeArrDueDate[0];
$('#' + serverIdPrefix + TextBoxId).val(dateOnlyDueDate);
setTimeSpanBeginInput = function () {
var dateTime = $('#' + serverIdPrefix + HiddenFieldId).val();
var dateTimeArr = dateTime.split(" ");
var dateOnly = dateTimeArr[0];
$('#' + serverIdPrefix + TextBoxId).val(dateOnly);
}
$('#' + serverIdPrefix + TextBoxId).datepicker({
dateFormat: 'yy-mm-dd',
onSelect: function (dateText) {
$('#' + serverIdPrefix + HiddenFieldId).val(dateText + ' 12:00:00 PM');
},
onClose: setTimeSpanBeginInput
});
}
}
【问题讨论】:
-
控制台有错误吗?
-
你确定你没有把事情复杂化吗?
-
不,我没有收到任何错误
-
代替这个:
if (TextBoxId != undefined)你可以使用:if(TextBoxId)只是有点短。不是吗? -
您使用了很多长变量,使用相同的复杂代码一遍又一遍地选择相同的元素。您可能可以将其缩短到一半,事实上,我已经这样做了 -> Fiddle ??
标签: c# javascript jquery asp.net datepicker