jQuery移动日期框';禁用';不起作用

jQuery移动日期框';禁用';不起作用,jquery,jquery-mobile,datebox,Jquery,Jquery Mobile,Datebox,我在侧面板中使用内联日期框。在某些情况下,我想通过编程禁用控件。按照API说明,我做了以下操作(coffeescript): 但该控件仍处于启用状态,并且返回“false”: alert $("#dateInput").datebox 'getOption', 'disabled' 我怀疑API文档中有错误,查看了datebox源代码,发现实际上有一个“disable”函数,所以我尝试了以下方法: $("#dateInput").datebox 'disable' 但同样,没有运气。有什么建

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

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

alert $("#dateInput").datebox 'getOption', 'disabled'
我怀疑API文档中有错误,查看了datebox源代码,发现实际上有一个“disable”函数,所以我尝试了以下方法:

$("#dateInput").datebox 'disable'
但同样,没有运气。有什么建议吗?

试试:

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

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

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

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

$(".enableDisable").on("click", function(){
    if ($(this).val() == "Enable") {           
        $("#dateInput").datebox("enable");
    } else {
        $("#dateInput").datebox("disable");
    }
});
这是一份工作报告


我很抱歉,如果这不是一个真正的回答,一个评论似乎也不合适

在调用disable/enable时,我添加了一个钩子来禁用/启用整个控件内容

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

它只在最新版本中出现,但如果您想修补它,相关的行如下:

提交行:

  • 1270
  • 1279
(1270&&1279)-这正是您已经手动执行的操作-您希望将“ui状态禁用”类添加/删除到

this.d.mainWrap
在功能中:

  • 使能
  • 禁用
方便的是,它们出现在.CORE文件的最后一个,所以至少它们很容易找到


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

我认为您需要将ui禁用类应用于输入的父div(包装器):$(“#dataInput”).parent(“div”).addClass(“ui禁用”);正确,我没有检查右边的图标;答案已编辑-谢谢@ezankerb因为datebox控件是内联的并且始终可见,我需要禁用控件本身,而不是输入。但是,我使用了您的方法,并将“ui禁用”类添加到相应的“ui日期框容器”中,这非常有效。我没有意识到“禁用”和“启用”功能对输入而不是控件本身进行操作,因为输入是隐藏的,所以我看不出它是以这种方式运行的。谢谢呵呵。从未考虑过这个用例。我会准备一些东西来做这个神奇的事情,这将是非常有用的!谢谢,ezanker——请看我上面的说明。需要禁用控件本身,因为日期框是内联的。
this.d.mainWrap