3

私はいつもこれをやろうとしていますが、うまくいき$("input[name=button]").attr("disabled", '');ません。これが機能しないのはなぜですか?

私はこれを使用することになった$("input[name=button]").attr("disabled", false);。私には、どちらも同等のように思えます。

4

3 に答える 3

4

これが機能しないのはなぜですか?

disabledいわゆるブール属性です:

多くの属性はブール属性です。要素にブール属性が存在する場合は真の値を表し、属性が存在しない場合は偽の値を表します。

属性が存在する場合、その値は空の文字列か、大文字と小文字を区別せずに属性の正規名に一致し、先頭または末尾に空白がない値である必要があります。

そのため、空の値は引き続き属性の存在を示しているため、フォーム要素は無効のままです。


私には、どちらも同等のように思えます。

ではない。jQuery はブール属性を異なる方法で扱います。新しい値の値をテストし、値が次の場合は属性を削除します。false

set: function( elem, value, name ) {
    var propName;
    if ( value === false ) {
        // Remove boolean attributes when set to false
        jQuery.removeAttr( elem, name );
    } else {
        // ...
    }
    return name;
}
于 2012-10-26T05:50:41.650 に答える
2

removeAttr()属性を削除するために使用できます

を削除するdisabledには、これを試してください、

$("input[name=button]").removeAttr("disabled");

于 2012-10-26T05:41:08.233 に答える
2

disabledはプロパティであり、propメソッドの代わりにattrメソッドを使用する必要があります。

$("input[name=button]").prop("disabled", false);

この.prop()メソッドは、プロパティの値を設定する便利な方法です。特に、複数のプロパティを設定する場合、関数によって返される値を使用する場合、または一度に複数の要素に値を設定する場合に便利です。selectedIndex、tagName、nodeName、nodeType、ownerDocument、defaultChecked、または defaultSelected を設定するときに使用する必要があります。jQuery 1.6 以降、これらのプロパティはメソッドで設定できなくなりました.attr()。それらには対応する属性がなく、単なるプロパティです。

于 2012-10-26T05:47:10.620 に答える