web-dev-qa-db-ja.com

チェックボックスは常に「オン」です

ハイ!

Uploadifyがファイルをアクションに送信するときに、チェックボックスがチェックされているかどうかを確認する必要があるため、次のようにしました。

    $('#uploaded').uploadify({
        'uploader': '/uploadify.swf',
        'cancelImg': '/cancel.png',
        'script': '/Interaction/Upload',
        'multi': true,
        'auto': false,
        'method': 'post',
        'scriptData': {'Checkbox': $('#checkbox').val()},
    });

しかし、私は「オン」の値を取得します。チェックされているかどうかは関係ありません。

誰か助けてもらえますか? Tks。


更新:

ページが読み込まれると、uploadifyがチェックボックスを取得していることに気付きました。つまり、チェックボックス(または他のタイプの入力)を変更すると、uploadifyが初期値(この場合は「checkbox = false」)を取得します。

Uploadifyでフォームを送信するにはどうすればよいですか?

Tks。

33
Thiago

$('#checkbox').is(':checked')を試してください

54
MikeM

チェックボックスの値は常に「オン」です。 HTMLフォームは、チェックボックスがオンの場合にのみサーバーに値を送信します。ボックスがチェックされていない場合、リクエストパラメータはありません。このセマンティクスは、チェックボックスとラジオボタンの違いを最小限に抑えるためのものです。

HTMLフォームは、次のセマンティクスを実装します。

if ($('#mycheckbox').is(':checked')) {
    payload['mycheckbox'] = $('#mycheckbox').val();
}

次のように、Ajaxでこのセマンティクスを模倣するか、「checked」フラグを直接送信できます。

payload['mycheckbox'] = $('#mycheckbox').is(':checked');

HTMLフォームのセマンティクスを模倣することをお勧めします。クライアントの動作に関係なく、サーバーコードでは次のことをお勧めします。

if mycheckbox param exists and its value is either 'true' or 'on' {  // pseudo code of course
    // mycheckbox is checked
} else {
    // mycheckbox is unchecked
}

この説明がお役に立てば幸いです。

24
Gopi Reddy

disabled関数を使用して、checkedpropなどのこれらすべての要素のプロパティを確認する非常に便利な方法があります。これもブール値に変換します:

$('#checkbox').prop('checked'); // -> true/false
$('#checkbox').prop('disabled'); // -> true/false
14

これを試して

$('#checkbox').is(':checked')
10
ShankarSangoli

変化する:

$('#checkbox').val()

$('#checkbox').attr('checked')
7
rossipedia

私は同じ問題を抱えていて、この解決策を見つけました:

if($("input[name='yourcheckbox']").is(':checked')) {
   console.log('chb checked');
} else {
   console.log('chb not checked');
}
1
nimrod

使用する:

$('#checkbox').attr('checked')
0
Mark Pope