jquery.enable and/or jquery.disable - the jQuery plugin for disabled attributes
jQuery.fn.enable = function( value ) {
if( value === undefined ) return this[0] && this[0].disabled !== undefined ? !this[0].disabled : undefined;
else {
return this.each( function( i ) {
if( this.disabled !== undefined ) this.disabled = !($.isFunction( value ) ? value.call( this, i, !this.disabled ) : value);
} );
}
};

jquery.enableは、jQueryの標準メソッドvalと同じような記述でdisabled属性の値を取得・設定する小さなプラグインです。

.enable()

jquery.enableを引数を指定せずに使用すると、要素のdisabled属性の値と逆の値(trueであればfalsefalseであればtrue)を返します。

jQueryオブジェクトに複数の要素が含まれている場合は、先頭の要素の値を返します。要素にdisabled属性が定義されていない場合や、jQueryオブジェクトに要素が含まれていない場合はundefinedを返します。

.enable( value )
.enable( function( index, value ) )

jquery.enableを引数を指定して使用すると、要素のdisabled属性の値を指定された値からboolean型に変換した逆の値を設定し、メソッドチェインのためjQueryオブジェクトを返します。引数に関数を指定する場合は、disabled属性の値を指定された関数の戻り値からboolean型に変換した逆の値を設定します。

jQueryオブジェクトに複数の要素が含まれている場合は、すべての要素のdisabled属性の値が指定された値と逆の値に設定されます。要素にdisabled属性が定義されていない場合や、jQueryオブジェクトに要素が含まれていない場合は何もしません。

関数の引数はvalメソッドと同じく第1引数にjQueryオブジェクト内の要素のインデックス、第2引数に現在の要素のdisabled属性の値と逆の値が渡されます。例えば、要素のdisabled属性の値をtruefalse交互に設定するには次のように指定します。

elements.enable( function( i, value ) { return i % 2; } ); )

指定する値と設定される属性の値が逆になるので、分かりにくい場合は以下のように記述を変更して「jquery.disable」プラグインとすればよいでしょう。

jQuery.fn.disable = function( value ) {
if( value === undefined ) return this[0] && this[0].disabled !== undefined ? this[0].disabled : undefined;
else {
return this.each( function( i ) {
if( this.disabled !== undefined ) this.disabled = !!($.isFunction( value ) ? value.call( this, i, this.disabled ) : value);
} );
}
};

JavaScriptが有効になっていません。