0

このプログラムでは、チェックボックスが選択されていないときに Html Button を無効にする必要があります。ボタンは、チェックボックスが選択されている場合にのみ有効にする必要があります。Jquery バージョン 1.8.3 を使用しています。ただし、このプログラムでは、有効と無効の切り替えが期待どおりに機能しません。

//------ HTML

    <body>
Some agreement here
<p>
    <input type="checkbox" id="agree" />
</p>
<input type="button" value="Continue" disabled="disabled" id="continue"/>

<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript" src="js/class.js"></script>  
</body>

//------JQuery

$(document).ready(function(){
    $('#agree').change(function(){
        state = $(this).attr('value');
        if(state == 'on'){
            $('#continue').removeAttr('disabled');
        }else if(state == ''){
            $('#continue').attr('disabled','disabled');
        }

    });
});
4

6 に答える 6

2

disabled(および)についてcheckedは、代わりに使用する必要があります.prop()

$("#continue").prop("disabled",true);

正確に何が期待どおりに機能していないかをお知らせいただければ助かりますが、

于 2013-07-30T16:17:26.730 に答える
1

代わりに次の関数を試してください。

$(document).ready(function(){
    $('#agree').change(function(){
        var checked = $(this).prop('checked')
        if(checked){
            $('#continue').removeAttr('disabled');
        }else{
            $('#continue').attr('disabled','disabled');
        }
    });
});

このフィドルを参照してください。

要約すると、どの時点でも設定されていないのをチェックしています。チェックボックスがチェックされているかどうかを判断するには、より良い方法です。またはを返します。これにより、物事がはるかに簡単になります。#agreeprop()prop()truefalse

于 2013-07-30T16:19:49.177 に答える
1
$(document).ready(function(){
    $('#agree').change(function(){
        if($(this).is(":checked")){
            $('#continue').removeAttr('disabled');
        }else{
            $('#continue').attr('disabled','disabled');
        }

    });
});
于 2013-07-30T16:25:33.863 に答える
0

disabled 属性の後には必要ありません="disabled"。ただ行う:

<input type="button" value="Continue" disabled />

.prop('disabled', true)とにかく代わりに使用する必要があります。そして、.removeProp()同様に。

于 2013-07-30T16:18:20.140 に答える