【发布时间】:2014-08-07 22:32:16
【问题描述】:
我能想到的所有使用("#chkBox1").prop("checked", true).checkboxradio("refresh"); 的方法都会导致错误。在 Chrome 中我得到Uncaught TypeError: undefined is not a function。我在 jQuery 之后和 JQM 和 DateBox 之前将这个脚本加载到一个外部文件中。我使用 ASP.NET Web 窗体。我禁用了许多验证控件的客户端验证,这有助于解决另一个问题。
我查看了可能的解决方案,包括确保 jQuery 存在 only one reference。我正在使用来自jQuery's 网站的文档。我有一个可用的 JSFiddle example,但我似乎无法让 checkboxradio 小部件在 Web 表单中工作。有没有办法解决这个错误?知道是什么导致了这个错误吗?
----编辑----
$(document).on("pagecreate", function () {
if ($("#chkBox1:checked")) {
sessionStorage.isHBH = true;
} else {
sessionStorage.isHBH = true;
}
if ($("#chkBox1").length) {
if (sessionStorage.isHBH) {
$("#chkBox1").prop("checked", true).checkboxradio("refresh");
} else {
$("#chkBox1").prop("checked", false).checkboxradio("refresh");
}
}
});
删除客户端 JavaScript 代码后,我仍然在刷新部分遇到错误,但只执行了几个步骤。此外,如果我刷新页面,复选框会被选中,但不会再被选中。有没有办法使用 JQM 可靠且动态地更改复选框的选中状态?
【问题讨论】:
-
chkBox1真的是客户端的ID吗?你确定它最终不会是chkBox1之类的东西吗?在我的 ASP.NET 应用程序中使用 jQuery 和 jQuery Mobile 几乎没有问题。您发布的解决方案似乎是基于对 Web 表单工作原理的失败理解。 -
您可能在创建复选框之前调用了刷新函数。
-
@mason 我确定 ID 没有改变,因为它是纯 HTML + JavaScript。
-
@Omar 我正在使用“pagechange”事件。我应该做一些不同的事情吗?
-
@Omar 感谢您的帮助。使用类而不是 ID 可以创造奇迹。奇怪的是,在查看源代码时,只有一个具有该 ID 的元素。
标签: jquery asp.net jquery-mobile webforms