jQuery移动日期框“禁用”无法正常工作

时间:2014-08-04 12:51:18

标签: jquery jquery-mobile datebox

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

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

但控件仍处于启用状态,并返回' false':

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

怀疑API文档中存在错误,我查看了日期框源,发现实际上有一个"禁用"功能,所以我尝试了这个:

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

但是,再一次,没有运气。有什么建议吗?

3 个答案:

答案 0 :(得分:2)

尝试:

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

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

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

JSFiddle

答案 1 :(得分:1)

如果这不是真正有资格作为答案,我很抱歉,评论也不合适。

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

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

它只出现在新版本的最新版本中,但是如果你想要修补它,那么相关产品线就在这里:

GitHub SHA: 0585b2cc...

提交行:

  • 1270
  • 1279

(1270&& 1279) - 这正是你手动做的 - 你想要添加/删除“ui-state-disabled”类

this.d.mainWrap

在函数中:

  • 使
  • 禁用

方便的是,它们在.CORE文件中显示 last ,所以至少它们很容易找到。

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

答案 2 :(得分:0)

不确定为什么'禁用'不适合你。对我来说,禁用'和'启用'工作正常:

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

这是一个有效的DEMO