.button(“禁用”)不起作用

时间:2012-08-02 10:08:15

标签: jquery jquery-mobile

我有一个名为customer-delete的按钮,当客户有一些信息时应该禁用它,如果客户没有这样的信息,应该启用它。

我的代码是这样的:

if(customer.name!=null && customer.email!=null){
    $("#customer-delete").button("disable");
    console.info("disabled");
}else{
    $("#customer-delete").button("enable");
    console.info("enabled");
}

但这不能正常工作。 控制台正确显示它,这意味着逻辑没有问题,但按钮始终处于启用状态。

有人能为我解决这个问题吗?

5 个答案:

答案 0 :(得分:2)

使用.prop()

$("#customer-delete").prop("disabled",true);

.removeProp()

$("#customer-delete").prop("disabled",true);
// is the same as:
$("#customer-delete").removeProp("disabled");

在jQuery 1.6之前,使用.attr()

或者在使用jQuery UI时,您可以将其作为参数对象进行交付:

$("#customer-delete").button({ disabled: true });

或用setter方法初始化之后:

$("#customer-delete").button( "option", "disabled", true );

编辑:

我很抱歉忽略jquery-mobile标记。根据{{​​3}}您的尝试.button("disable")是正确的。现在有几种可能性:

  1. 该文件陈述以下内容 - 我无法根据您提供的上下文判断,是否适合您。

      

    以下方法仅适用于表单按钮。基于链接的按钮没有任何相关的方法。

  2. 您的选择器无法正确匹配。

  3. 代码中的其他地方发生冲突。

答案 1 :(得分:0)

if(customer.name!=null && customer.email!=null){
    $("#customer-delete").attr("disabled", "disabled");
    console.info("disabled");
}else{
    $("#customer-delete").removeAttr("disabled");
    console.info("enabled");
}

答案 2 :(得分:0)

试试这个

if(customer.name!=null && customer.email!=null){
    $("#customer-delete").attr("disabled", true);
}else{
    $("#customer-delete").attr("disabled", false);
}

答案 3 :(得分:0)

来自the documentation,是不是应该看起来像这样?

$( "#customer-delete" ).button({ disabled: true });

答案 4 :(得分:0)

如果它具有按钮的数据角色但实际上不是按钮(例如链接),则不能使用这些功能;'

 $("#customer-delete").addClass('ui-disabled');