3

次のように入力チェックボックスを印刷しました。

<input type="checkbox" id="a1" value="11" disabled="false">
<input type="checkbox" id="a2" value="21" disabled="true">
<input type="checkbox" id="a3" value="31" disabled="false">

disabled 属性に値がないことはわかっています。したがって、属性が存在する場合、割り当てられた値に関係なく、要素は無効になります。値が false であるすべての入力要素からすべての disabled 属性を削除したいと考えています。

jQuery を使用して、次のようなコードを使用したいと思います。

$("*[disabled]").not(true).removeAttr("disabled");
4

5 に答える 5

3

disabled要素を一致させてみませんfalseか?

$('[disabled="false"]​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​')​.removeAttr('disabled');​​​

デモ: http://jsfiddle.net/ASN29/

属性が存在するとdisabled、属性の値に関係なく、要素が自動的に無効になるため、これはあまり良い考えではありません。HTMLはどのようにしてこのようになりますか?

于 2012-12-21T00:04:56.027 に答える
2

有効にしたい場合は、.prop()代わりに..を使用してください(これは、入力disabledの実際のプロパティとしてcheckbox

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

http://jsfiddle.net/gaby/Bn4dr/でのデモ


ただし、正しい方法は、適切なhtmlを直接印刷することです。

<input type="checkbox" id="a1" value="11">
<input type="checkbox" id="a2" value="21" disabled>
<input type="checkbox" id="a3" value="31">
于 2012-12-21T00:11:41.237 に答える
2

次のようなセレクターを簡単に使用できます。

$('input[disabled="false"]').removeAttr("disabled");

jsFiddle デモ

の代わりに、クエリを大幅に絞り込んで*追加しました。これは、値を持つと呼ばれる属性を持つ要素をinput検索します。inputdisabledfalse

これをまったく行わないことをお勧めします。その HTML は生成されていないはずです。

于 2012-12-21T00:04:58.123 に答える
0
​$(document).ready(function (){
    $('input:disabled').removeAttr('disabled');    
});​

ここにjsFiddle と:disabled セレクターに関するドキュメントがあります

于 2012-12-21T00:04:42.100 に答える
0
$('input[disabled="false"]').removeAttr("disabled");

http://jsfiddle.net/JKs4C/を参照してください

一方、これが良いアイデアかどうかについては...本当の答えは、サーバー側のレンダリングを修正して、無効になっていない要素の無効属性を完全に省略することだと思います。そうしないと、スクリプトがうまくいかなかったり、noscript になったりすると、すべての要素が無効になってしまいます。

于 2012-12-21T00:07:45.407 に答える