Значение флажка 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
Решение помогло мне, спасибо Боян Петковски