【问题标题】:Uncaught TypeError - checkboxradio("refresh")未捕获的 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 的元素。

标签: jquery asp.net jquery-mobile webforms


【解决方案1】:

当我测试禁用每个验证控件的客户端脚本功能时,我正在为这个问题写一个问题,而不仅仅是一些。这立即解决了我的问题。

问题的根源一定是 ASP.NET Web Forms 太有用了一半。验证控件会注入大量 JavaScript,这些 JavaScript 会干扰自定义脚本,尤其是会干扰此 checkboxradio 小部件的代码。

我怀疑许多奇怪的 jQuery 和 JQM 问题可以通过禁用 Web 窗体默认强加给我们的这种“帮助”来解决。

-- 编辑--

后来出现了问题,但使用“pagecontainershow”作为事件进行了修复

【讨论】:

    猜你喜欢
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    相关资源
    最近更新 更多