未捕获的 TypeError - checkboxradio("refresh")
Posted
技术标签:
【中文标题】未捕获的 TypeError - checkboxradio("refresh")【英文标题】:Uncaught TypeError - checkboxradio("refresh") 【发布时间】: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 的元素。
【参考方案1】:
当我测试禁用每个验证控件的客户端脚本功能时,我正在为这个问题写一个问题,而不仅仅是一些。这立即解决了我的问题。
问题的根源一定是 ASP.NET Web Forms 太有用了一半。验证控件会注入大量 JavaScript,这些 JavaScript 会干扰自定义脚本,尤其是会干扰此 checkboxradio 小部件的代码。
我怀疑许多奇怪的 jQuery 和 JQM 问题可以通过禁用 Web 窗体默认强加给我们的这种“帮助”来解决。
-- 编辑--
后来出现了问题,但使用“pagecontainershow”作为事件进行了修复
【讨论】:
以上是关于未捕获的 TypeError - checkboxradio("refresh")的主要内容,如果未能解决你的问题,请参考以下文章
VueJS:未捕获(承诺中)TypeError:无法读取未定义的属性“推送”
未捕获的TypeError:(中间值).map不是函数[重复]
如何使用自定义错误消息捕获“TypeError:无法读取未定义的属性(读取'0')”?
未捕获(承诺)TypeError:无法读取未定义的属性“长度”