1

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

我的代码是这样的:

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

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

谁能给我一个解决方案?

4

5 回答 5

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标签。根据文档,您的尝试.button("disable")是正确的。现在有几种可能:

  1. 该文档指出以下内容-我无法根据您提供的上下文来判断您是否属于这种情况。

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

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

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

于 2012-08-02T10:13:08.047 回答
0
if(customer.name!=null && customer.email!=null){
    $("#customer-delete").attr("disabled", "disabled");
    console.info("disabled");
}else{
    $("#customer-delete").removeAttr("disabled");
    console.info("enabled");
}
于 2012-08-02T10:12:45.707 回答
0

尝试这个

if(customer.name!=null && customer.email!=null){
    $("#customer-delete").attr("disabled", true);
}else{
    $("#customer-delete").attr("disabled", false);
}
于 2012-08-02T10:12:57.227 回答
0

文档来看,它不应该是这样的吗?

$( "#customer-delete" ).button({ disabled: true });
于 2012-08-02T10:13:13.567 回答
0

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

 $("#customer-delete").addClass('ui-disabled');
于 2012-08-02T10:13:39.590 回答