【发布时间】:2014-05-15 09:33:02
【问题描述】:
我正在使用带有 jquery 1.10.1 和 jquery ui 1.10.3 的 asp.net mvc 2。
当我使用 $.ajax 加载页面时,日期选择器有点不对劲。它会像往常一样弹出并返回,但与它的交互已中断。
例如:我点击输入 => 弹出日期选择器 => 选择一个日期 => 错误当前日期未定义
一个页面可以有多个带有日期选择器的输入,这就是我在代码中使用 .each 的原因。
我有 2 个页面:Index.aspx 和 PatchDef.aspx。 Index 使用 $.ajax 调用动态加载 PatchDef.aspx。
在 PatchDef.aspx 中,我使用带有 $(document).ready 代码的标签,它将日期选择器绑定到我的输入。
这是我现在使用的代码:
$(document).ready(function () {
$(".datePickerPatchDef").each(function () {
var dateFormat = $(this).attr("dateFormatPatchDef").toLowerCase();
$(this).datepicker({
dateFormat: dateFormat,
changeMonth: true,
changeYear: true
});
});
});
我还尝试了以下代码,发现 here :
注意:这里的类类似于 dpCount1; dpCount2, ...
$(".datePickerPatchDef").each(function () {
var dateFormat = $(this).attr("dateFormatPatchDef").toLowerCase();
$(this).datepicker({
var dpCountClass;
var allClasses = $(this).attr("class").split(' ');
for (var i = 0; i < allClasses.length; ++i) {
var singleClass = allClasses[i];
if (singleClass.match("^dpCount")) {
dpCountClass = "." + singleClass;
}
}
$("#switchUser").text(dpCountClass);
$("body").on("focusin", dpCountClass, function () {
$(this).datepicker({
dateFormat: dateFormat,
changeMonth: true,
changeYear: true
});
});
});
}
我以为第二次尝试可以解决动态加载问题,但事实并非如此。
我得到的确切错误是:
Microsoft JScript 运行时错误:无法设置属性值 'currentDay': 对象为空或未定义
然后进入代码
o.selectedDay=o.currentDay=t("a",n).html()
其中 o = 未定义
因此,如果您有任何建议,我可以随时使用。 如果您需要更多信息,请询问!
【问题讨论】:
-
感谢您在没有任何解释的情况下神秘地投反对票。它完全可以帮助有问题的人获得答案。
-
你试过把代码放在 ajax.success 函数里面吗?
-
@dops 是的,我试过了。它给出了完全相同的问题。
-
这段代码在哪里?在 index.apsx 或 PatchDef.aspx 中?我们还能看到完整的 ajax 请求吗?
-
Index.aspx 包含带有成功函数的 $.ajax。它返回 PatchDef.aspx 页面,其中包括我在问题中提供的 jquery 代码。正如你所建议的,我也尝试将我的日期选择器代码从 PatchDef.aspx 移动到索引 ajax.success,但这产生了同样的错误。
标签: jquery jquery-ui-datepicker