【问题标题】:jQuery mobile datebox 'disable' not workingjQuery 移动日期框“禁用”不起作用
【发布时间】:2014-08-04 12:51:17
【问题描述】:

我在侧面板中使用内联日期框。在某些情况下,我想以编程方式禁用控件。按照 API 说明,我做了这个(coffeescript):

$("#dateInput").datebox 'close'

但该控件仍处于启用状态,并且返回“false”:

alert $("#dateInput").datebox 'getOption', 'disabled'

怀疑是API文档有错误,我查看了datebox源码,发现其实有一个“禁用”功能,所以我试了一下:

$("#dateInput").datebox 'disable'

但同样,没有运气。有什么建议吗?

【问题讨论】:

    标签: jquery jquery-mobile datebox


    【解决方案1】:

    试试:

    // disable
    $("#dataInput").parent("div").addClass("ui-disabled");
    
    // enable
    $("#dataInput").parent("div").removeClass("ui-disabled");
    
    // toggle enable/disable
    $("#dataInput").parent("div").toggleClass("ui-disabled");
    

    JSFiddle

    【讨论】:

    • 我认为您需要将禁用 ui 的类应用于输入的父 div(包装器): $("#dataInput").parent("div").addClass("ui -禁用");
    • 正确,我没有检查右边的图标;答案已编辑 - 谢谢@ezanker
    • 因为 datebox 控件是内联的并且始终可见,所以我需要禁用控件本身,而不是输入。但是,我使用了您的方法并将“ui-disabled”类添加到适当的“ui-datebox-container”中,并且效果很好。我没有意识到“禁用”和“启用”功能对输入而不是控件本身进行操作,并且由于输入是隐藏的,我看不到它的行为方式。谢谢!!
    • 嗯。甚至从未考虑过这个用例。我会拼凑一些东西来神奇地做到这一点
    • 那将非常有用!
    【解决方案2】:

    如果这不能真正作为答案,我很抱歉,评论似乎也不合适。

    我在调用禁用/启用时添加了一个挂钩来禁用/启用整个控件内容。

    它对控件的脚本化调用没有任何影响,它们仍然会生效。

    它只在最新的新版本中,但如果你想修补它,相关行在这里:

    GitHub SHA: 0585b2cc...

    提交行:

    • 1270
    • 1279

    (1270 && 1279) - 这正是您已经手动执行的操作 - 您想要添加/删除“ui-state-disabled”类

    this.d.mainWrap
    

    在功能中:

    • 启用
    • 禁用

    很方便,它们最后出现在 .CORE 文件中,因此至少它们很容易找到。

    Fwiw,该提交引用了“下一个”大版本更改 - 简单地说,DateBox 是在 jQM-1.0 alpha 4 左右构建的,具有当时所需的所有标记 - 新版本将是 1.4。 3 进行了优化,在我们看到实际版本之前完成了 1.5.0 的大部分工作。它还将完全转储“对话”模式(jQM 1.5.0 将),以及我的“自制”弹出方法以支持“官方”弹出窗口。可在此处进行试驾:Buggy, likely broken demo

    【讨论】:

      【解决方案3】:

      不确定为什么“禁用”对您不起作用。对我来说“禁用”和“启用”工作正常:

      $(".enableDisable").on("click", function(){
          if ($(this).val() == "Enable") {           
              $("#dateInput").datebox("enable");
          } else {
              $("#dateInput").datebox("disable");
          }
      });
      

      这是一个有效的DEMO

      【讨论】:

      • 谢谢,ezanker——见我上面的说明。需要禁用控件本身,因为日期框是内联的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-25
      • 2022-01-24
      • 1970-01-01
      相关资源
      最近更新 更多