2017-02-06 5 views
0

То, что я пытаюсь достаточно просто, но по какой-то причине я не могу заставить его работать:ли различные действия в зависимости от CheckBox состояния

Мне нужен способ, чтобы сделать различные действия в зависимости от CheckBox государства. Если он проверен, сделайте что-нибудь. Если нет, сделайте что-нибудь еще. По какой-то причине я могу только быть "проверено" состояние:

$('#checkbox1').on('change', function() { 
    if ($('#checkbox1:checked')) { 
     console.log('do something') 
    } else { 
     console.log('do something else') 
    } 
}); 

Codepen: http://codepen.io/anon/pen/EZROGa?editors=1010

что мне не хватает?

+0

Возможный дубликат [Проверьте флажок с JQuery] (http://stackoverflow.com/questions/2204250/check-if-checkbox-is-checked-with- jQuery) – Keatinge

+0

'if ($ ('# checkbox1'). is (': checked')) {' – Developer

+0

'if ($ (this) .is (': checked')) {' более читаемо –

ответ

2

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

$('#checkbox1').on('change', function() { 
    if($(this).is(':checked')) // here $(this) refers to $('#checkbox1') 
    { 
    // do some thing 
    } 
    else 
    { 
    // do some thing 
    } 
}); 
1

$('#checkbox1').on('change', function() { 
 
    if ($('#checkbox1').is(":checked")) { 
 
    console.log('do something') 
 
    } else { 
 
    console.log('do something else') 
 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" id="checkbox1" />

Используйте как этот

0

Здесь вы идете:

$('#checkbox1').on('change', function() { 
    if ($('#checkbox1:checked').length) { 
    console.log('do something') 
    } else { 
    console.log('do something else') 
    } 
}) 
1
$('#checkbox1').on('change', function() { 
    if ($(this).is(":checked")) { 
    console.log('do something') 
    } else { 
    console.log('do something else') 
    } 
}) 
1

Правильный синтаксис:

`$('#checkbox1').on('change', function() { 
    if ($('#checkbox1').prop('checked')) { 
    console.log('do something') 
    } else { 
    console.log('do something else') 
    } 
})` 
1

Вы можете использовать функцию .prop() Jquery.

$('#checkbox1').on('change', function() { 
    if ($('#checkbox1').prop("checked")) { 
    console.log('do something') 
    } else { 
    console.log('do something else') 
    } 
}) 

http://api.jquery.com/prop/

0

Мне нравится принимать этот чистый подход

var check = $("#checkbox1:checked").length; 

if(check) //Do Something. 
1

$('#checkbox1').on('change', function() { 
 
    if ($(this).is(":checked")) { 
 
    console.log('do something') 
 
    } else { 
 
    console.log('do something else') 
 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="checkbox1" name="checkbox1" type="checkbox"><label for="checkbox1">some checkbox</label>

Try выше. Это ключевое слово указывает на текущий элемент html.

0

попробовать это:

$('#checkbox1').on('click', function() { 
if ($(this).prop("checked") == true) { 
    console.log('do something') 
} else { 
    console.log('do something else') 
} 
}) 
Смежные вопросы