web-dev-qa-db-ja.com

チェックボックス値true / false

チェックボックス付きのフォームがあり、エラーが発生して同じビューに戻ったときにフォームを送信した後、チェックしたままにしておきたい。値属性はチェックボックスをチェックするのに役立つと聞いたので、true/falseに設定しようとしています。とにかく、入力値をクリックしても「false」のままです。正確にはどうなりますか?チェックボックスをクリックした後、値が真/偽になると思った

<input type="checkbox" name="acceptRules" class="inline checkbox" id="checkbox1" value="false">

      <script>
          $("#checkbox1").is(':checked', function(){
              $("#checkbox1").attr('value', 'true');
          });
      </script>
14
divHelper11

質問を理解したら、チェックボックスがオンになっているかどうかに応じて、チェックボックスの値を変更します。

1つの解決策を次に示します。

$('#checkbox-value').text($('#checkbox1').val());

$("#checkbox1").on('change', function() {
  if ($(this).is(':checked')) {
    $(this).attr('value', 'true');
  } else {
    $(this).attr('value', 'false');
  }
  
  $('#checkbox-value').text($('#checkbox1').val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>


<input type="checkbox" name="acceptRules" class="inline checkbox" id="checkbox1" value="false">

<div id="checkbox-value"></div>
23
Bojan Petkovski

_Checked = true_を使用します

_$("#checkbox1").prop('checked', true);
_

注:チェックボックスでイベントをonclick/onchangeするかどうかはわかりません。 is(":checked", function(){})は質問の間違いです。

5
Aju John

これを試して

$("#checkbox1").is(':checked', function(){
  $("#checkbox1").prop('checked', true);
});
      
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="acceptRules" class="inline checkbox" id="checkbox1" value="false">
2
Jitendra Tiwari

JSでは、チェックボックスが非常に奇妙になります。 checked属性の存在を確認するのが最善です。 (checkedが 'false'に設定されている場合でも、古いjQueryバージョンはtrueを返します。)何かがチェックされていると判断したら、value属性から値を取得できます。 。

1
Michael Ambrose

jQuery.is() functionには.is('selector', function)のシグネチャがありません。

次のようなことをしたいと思います。

      if($("#checkbox1").is(':checked')){
          $("#checkbox1").attr('value', 'true');
      }
1
Uzbekjon

この回答は、次の仮定の下で投稿します。 1) You (un)selected the checkbox on the first page and submitted the form. 2) Your building the second form and you setting the value="" true/false depending on if the previous one was checked. 3) You want the checkbox to reflect if it was checked or not before.

この場合、次のようなことができます。

var $checkbox1 = $('#checkbox1');
$checkbox1.prop('checked', $checkbox1.val() === 'true');
1
Taplar