Значение флажка true/false

У меня есть форма с флажком, и я хочу, чтобы она была проверена после отправки формы, когда она возвращается к тому же представлению с ошибкой. Я слышал, что атрибут value может помочь мне установить флажок, поэтому я пытаюсь установить его в true/false. Во всяком случае, значение ввода остается "ложным", даже если я нажму на него. Что происходит именно так? Я думал, что значение будет истинным/ложным после щелчка на флажке

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

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

Ответ 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>

Ответ 2

Используйте Checked = true

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

Примечание. Я не знаю, хотите ли вы включить onclick/onchange событие в флажке. is(":checked", function(){}) является неправильным в вопросе.

Ответ 3

Попробуйте это

$("#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">

Ответ 4

Флажки в JS могут быть очень странными. Лучше всего проверять наличие атрибута checked. (У меня были более старые версии jQuery, возвращающие true, даже если для параметра checked установлено значение "false".) После того, как вы определили, что что-то проверено, вы можете получить значение из атрибута value.

Ответ 5

jQuery.is() не имеет подписи для .is('selector', function).

Я думаю, вы хотите сделать что-то вроде этого:

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

Ответ 6

Я собираюсь опубликовать этот ответ в следующих предположениях. 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');

Ответ 7

Решение помогло мне, спасибо Боян Петковски