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 });

またはセッターメソッドで初期化した後:

$("#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 に答える