0

ラジオ入力があり、ページの他の場所にあるボタンで、チェックされているかどうかを確認し、チェックされているの値をオンまたはオフに変更します。

入力は次のようになります。

<input type="radio" name="send" value="1"  checked="true" />

または

<input type="radio" name="send" value="1"  />

私はチェックを行うためのかなり簡単なjQueryを持っています:

$input = $('input[name=send]');

if( $input.is(":checked") ) 
{
    $input.attr("checked", false);
}
else
{
    $input.attr("checked", true);
}   

問題は、ページが読み込まれて入力がチェックされる場合、何らかの理由で、ステートメントの else 部分を認識する前に、ボタンを 2 回クリックする必要があることです。

入力がチェックされていない状態でページが開始された場合、ボタンを最初にクリックすると、期待どおりに機能します。その後、すべてのクリックが機能します。ただし、入力がチェックされている場合は、初期ロードではありません。

入力をチェック済みとしてマークする適切な方法は何ですか?

入力[type=radio]に対して適切なif/elseステートメントを実行して、チェックされているかどうかを確認するにはどうすればよいですか?

4

4 に答える 4

3

prop()を使用して attrcheckedの代わりにプロパティにアクセスしますcheckbox。jQuery 1.9 で発生しました。jQuery 1.8.3 で動作しますが、prop() を使用する方が適切です。

if( $input.is(":checked") ) 
{
    $input.prop("checked", false);
}
else
{
    $input.prop("checked", true);
}   

@Álvaro G. Vicarioが使用できると言ったようにif( $input.prop("checked") )

于 2013-04-03T09:19:45.667 に答える
2

これはおそらくあなたが望むものです。

$input.prop('checked', function(i, oldVal){
    return !oldVal;
});

2 つのラジオ ボタンを扱っているので、これでうまくいきます。

于 2013-04-03T09:28:59.737 に答える
2

.prop()代わりに使用してください:

$input.prop("checked", false/true);

だからあなたのコードで:

if($input.is(":checked")){
    $input.prop("checked", false);
}else{
    $input.prop("checked", true);
}
于 2013-04-03T09:20:14.890 に答える
2

checkedはチェックボックスのプロパティなので、.prop()代わりに使用します.attr()

属性が存在すると、checkedその値に関係なく、チェックボックスがオンになります。

于 2013-04-03T09:21:01.793 に答える