javascript - текст - Проверьте, установлен ли флажок с помощью jQuery
jquery добавить текст в div (14)
Самая важная концепция, которую нужно запомнить об проверяемом атрибуте, заключается в том, что она не соответствует проверенному свойству. Атрибут фактически соответствует свойству defaultChecked и должен использоваться только для установки начального значения этого флажка. Проверенное значение атрибута не изменяется с состоянием этого флажка, а свойство checked. Таким образом, совместимый с кросс-браузером способ определить, установлен ли флажок, - использовать свойство
Возможны все нижеперечисленные методы
elem.checked
$(elem).prop("checked")
$(elem).is(":checked")
Как проверить, установлен ли флажок в блоке checkbox с помощью идентификатора блока checkbox?
Я использую следующий код, но он всегда возвращает количество отмеченных флажков независимо от id.
function isCheckedById(id) {
alert(id);
var checked = $("input[@id=" + id + "]:checked").length;
alert(checked);
if (checked == 0) {
return false;
} else {
return true;
}
}
Jquery можно использовать любой из следующих рекомендуемых кодов.
if ( elem.checked ) {};
if ( $( elem ).prop( "checked" ) ) {};
if ( $( elem ).is( ":checked" ) ) {};
Вы можете использовать этот код,
if($("#checkboxId").is(':checked')){
// Code in the case checkbox is checked.
} else {
// Code in the case checkbox is NOT checked.
}
Вы можете попробовать следующее:
<script>
function checkAllCheckBox(value)
{
if($('#select_all_').is(':checked')){
$(".check_").attr ( "checked" ,"checked" );
}
else
{
$(".check_").removeAttr('checked');
}
}
</script>
<input type="checkbox" name="chkbox" id="select_all_" value="1" />
<input type="checkbox" name="chkbox" class="check_" value="Apples" />
<input type="checkbox" name="chkbox" class="check_" value="Bananas" />
<input type="checkbox" name="chkbox" class="check_" value="Apples" />
<input type="checkbox" name="chkbox" class="check_" value="Bananas" />
Для флажка с идентификатором
<input id="id_input_checkbox13" type="checkbox"></input>
вы можете просто сделать
$("#id_input_checkbox13").prop('checked')
вы получите true
или false
как возвращаемое значение для синтаксиса выше. Вы можете использовать его в условии if как нормальное булевское выражение.
Идентификаторы должны быть уникальными в вашем документе, а это означает, что вы не должны этого делать:
<input type="checkbox" name="chk[]" id="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" id="chk[]" value="Bananas" />
Вместо этого отпустите идентификатор, а затем выберите их по имени или содержащему элемент:
<fieldset id="checkArray">
<input type="checkbox" name="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" value="Bananas" />
</fieldset>
И теперь jQuery:
var atLeastOneIsChecked = $('#checkArray:checkbox:checked').length > 0;
//there should be no space between identifier and selector
// or, without the container:
var atLeastOneIsChecked = $('input[name="chk[]"]:checked').length > 0;
Код jQuery, чтобы проверить, установлен ли флажок или нет:
if($('input[name="checkBoxName"]').is(':checked'))
{
// checked
}else
{
// unchecked
}
В качестве альтернативы:
if($('input[name="checkBoxName"]:checked'))
{
// checked
}else{
// unchecked
}
На самом деле, согласно jsperf.com , операции DOM jsperf.com , затем $ (). Prop (), за которыми следует $ (). jsperf.com () !!
Вот синтаксис:
var checkbox = $('#'+id);
/* OR var checkbox = $("input[name=checkbox1]"); whichever is best */
/* The DOM way - The fastest */
if(checkbox[0].checked == true)
alert('Checkbox is checked!!');
/* Using jQuery .prop() - The second fastest */
if(checkbox.prop('checked') == true)
alert('Checkbox is checked!!');
/* Using jQuery .is() - The slowest in the lot */
if(checkbox.is(':checked') == true)
alert('Checkbox is checked!!');
Я лично предпочитаю .prop()
. В отличие от .is()
, его также можно использовать для установки значения.
Полезны все следующие методы:
$('#checkbox').is(":checked")
$('#checkbox').prop('checked')
$('#checkbox')[0].checked
$('#checkbox').get(0).checked
Рекомендуется, чтобы DOMelement или inline «this.checked» следует избегать, вместо этого jQuery в методе должен использоваться прослушиватель событий.
Простая демонстрация для проверки и установки флажка.
jsfiddle !
$('.attr-value-name').click(function() {
if($(this).parent().find('input[type="checkbox"]').is(':checked'))
{
$(this).parent().find('input[type="checkbox"]').prop('checked', false);
}
else
{
$(this).parent().find('input[type="checkbox"]').prop('checked', true);
}
});
Что-то вроде этого может помочь
togglecheckBoxs = function( objCheckBox ) {
var boolAllChecked = true;
if( false == objCheckBox.checked ) {
$('#checkAll').prop( 'checked',false );
} else {
$( 'input[id^="someIds_"]' ).each( function( chkboxIndex, chkbox ) {
if( false == chkbox.checked ) {
$('#checkAll').prop( 'checked',false );
boolAllChecked = false;
}
});
if( true == boolAllChecked ) {
$('#checkAll').prop( 'checked',true );
}
}
}
Я знаю, что OP хочет jquery, но в моем случае чистый JS был ответом, поэтому, если кто-то вроде меня здесь и не имеет jquery или не хочет его использовать, вот ответ JS:
document.getElementById("myCheck").checked
Он возвращает true, если вход с идентификатором myCheck проверен и false, если он не установлен.
Просто как тот.
$('#' + id).is(":checked")
Это произойдет, если флажок установлен.
Для массива флажков с тем же именем вы можете получить список проверенных:
var $boxes = $('input[name=thename]:checked');
Затем, чтобы пройти через них и посмотреть, что вы проверили, вы можете сделать:
$boxes.each(function(){
// Do stuff here with this
});
Чтобы узнать, сколько проверок вы можете сделать:
$boxes.length;
$('#checkbox').is(':checked');
Вышеприведенный код возвращает true, если флажок установлен или false, если нет.