2011-11-30 15 views

答えて

50

更新:代わりのattrの小道具を使用して

<input type="checkbox" name="vehicle" id="vehicleChkBox" value="FALSE"/> 

$('#vehicleChkBox').change(function(){ 
    cb = $(this); 
    cb.val(cb.prop('checked')); 
}); 

DATE OF OUT:ここ

jsfiddle

<input type="checkbox" name="vehicle" id="vehicleChkBox" value="FALSE" /> 

$('#vehicleChkBox').change(function(){ 
    if($(this).attr('checked')){ 
      $(this).val('TRUE'); 
    }else{ 
      $(this).val('FALSE'); 
    } 
}); 
+2

古い投稿ですが、 'attr()'の代わりに '.prop( 'checked')'を使うべきです。さらに、1行に 'var $ cb = $ this(this);を強制する方が簡単です。 $ cb.val($ cb.prop( 'checked'));または大文字小文字の場合は 'var $ cb = $(this); toUpperCase()); ' – vol7ron

14

使用$('#id-of-the-checkbox').prop('checked', true_or_false);

あなたは古代のjQueryのバージョンを使用している場合は、あなたがオフにチェックし.removeAttr('checked')する.attr('checked', 'checked')を使用する必要があります。

52

あなたは(以降のjQuery 1.6)を行うことができます。

はjQueryの< 1.6と
$('#idCheckbox').removeProp('checked'); 

あなたは

$('#idCheckbox').attr('checked', true); 
$('#idCheckbox').removeAttr('checked'); 
+0

しかし、チェックボックスの値falseはフォーム送信と一緒に送信されません。それを実現する方法はありますか? – IcedDante

4
var checkbox = $("#checkbox"); 
checkbox.val(checkbox[0].checked ? "true" : "false"); 
を行う必要があります。

$('#idCheckbox').prop('checked', true); 
$('#idCheckbox').prop('checked', false); 

はあなたにも使用することができます削除します

これにより、が設定されますチェックボックスのは"true"または"false"value propertystring))で、uncheckedまたはcheckedのいずれかに応じて異なります。 jQueryので

作品> = 1.0

6
です

HTML::

<input type="checkbox" value="FALSE" /> 

jQの:

$("input[type='checkbox']").on('change', function(){ 
    $(this).val(this.checked ? "TRUE" : "FALSE"); 
}) 

jsfiddle

未チェックチェックボックスは、通常の形で提出されないことを心に留めて、あなたが使用する必要がありますしてくださいはこれを試してみてくださいそれをするために隠されたフィールド。

+0

あなたのフィディススニペットは、他のスパンの値を受けています。チェックボックスの値を変更しません。あなたの答えを同期してください –

+1

スニペットの 'span'はデモンストレーションのためのものです。コードを見ると、チェックボックスの値と等しくなるように設定されます。しかし、より良い(少し速い)ソリューションが必要な場合、これは役立つかもしれません:http://jsfiddle.net/SfEGn/130/ – Krule

+0

これは、文字通りコピー&ペーストすることができ、動作するコードです。さらなる説明をありがとう –

関連する問題