1
<input type="checkbox" id="dw"/>

<select id="oo">
    <option>a</option>
    <option>b</option>
    <option>c</option>
</select>

$('#dw').change(function() {
    if ($(this).is(':checked')) {
        $('#oo').removeAttr('disabled');
    } else {
        $('#oo').attr('disabled', true);
    }
}

エラーがどこにあるのかわかりません。

http://jsfiddle.net/f8jGU/

4

4 に答える 4

1
$('#dw').on('change', function() {

    // If this.checked = true, then select will enabled else disabled
    // instead of attr() use prop()
    $('#oo').prop('disabled', !this.checked);
});

作業サンプル

.prop()についてもっと読む

あなたは以下のリンクから巨大なものを得ることができます:

.prop()と.attr()

于 2012-06-01T05:44:47.507 に答える
1

作業デモ http://jsfiddle.net/2gbHQ/5/

よく読む http://api.jquery.com/prop/

.prop()メソッドは、一致したセットの最初の要素のプロパティ値のみを取得します。設定されていないプロパティの値、または一致したセットに要素がない場合は、undefinedを返します。各要素の値を個別に取得するには、jQueryの.each()または.map()メソッドなどのループ構造を使用します。

Jqueryコード

$('#dw').change(function() {
    if ($(this).is(':checked')) {
        $('#oo').prop('disabled', false);
    } else {
        $('#oo').prop('disabled', true);
    }
});​

HTML

<input type="checkbox" id="dw" />

<select id="oo" disabled="true">
    <option>a</option>
    <option>b</option>
    <option>c</option>
</select>
​
于 2012-06-01T05:46:58.823 に答える
0

コードが機能しなかった理由は、.prop()( https://api.jquery.com/prop/ )の jQuery ドキュメントで説明されています。

プロパティは通常、シリアライズされた HTML 属性を変更することなく、DOM 要素の動的な状態に影響を与えます。例には、input 要素の value プロパティ、inputs とボタンの disabled プロパティ、またはチェックボックスの checked プロパティが含まれます。メソッドの.prop()代わりに、.attr() メソッドを使用して無効およびチェックを設定する必要があります。この.val()メソッドは、値の取得と設定に使用する必要があります。

1 $( "入力" ).prop( "無効", false );
2 $( "入力" ).prop("チェック済み", true );
3 $( "入力" ).val( "someValue" );

重要:.removeProp()メソッドを使用してこれらのプロパティを false に設定しないでください。ネイティブ プロパティが削除されると、再度追加することはできません。詳細については、を参照.removeProp()してください。

于 2016-08-26T12:31:39.863 に答える
0

関数を閉じるのを忘れた場合を除いて、コードもchange機能します。更新されたフィドルを参照してくださいhttp://jsfiddle.net/f8jGU/1/

于 2012-06-01T06:02:36.983 に答える