Yanıtlar:
Değer özelliğinin değerini almak için şöyle bir şey yapabilirsiniz:
$("input[type='checkbox']").val();
Veya bunun için bir class
veya ayarladıysanız id
, şunları yapabilirsiniz:
$('#check_id').val();
$('.check_class').val();
Ancak bu , işaretli olsun ya da olmasın aynı değeri döndürür , gönderilen form davranışından farklı olduğu için bu kafa karıştırıcı olabilir.
İşaretli olup olmadığını kontrol etmek için şunları yapın:
if ($('#check_id').is(":checked"))
{
// it is checked
}
$($0).val()
Chrome ve seçimi kaldırmaları onay kutusunda, cevabım işaretli olmasa bile "açık" olduğunu. Ancak $($0).is(":checked")
doğru değeri döndürür.
[type="checkbox"]
, modern tarayıcılarda daha iyi bir performansa sahiptir :checkbox
.
$('#check_id').val();
için değiştirin $('#check_id').is(":checked");
.
Bu 2 yol çalışıyor:
$('#checkbox').prop('checked')
$('#checkbox').is(':checked')
(teşekkürler @mgsloan)$('#test').click(function() {
alert("Checkbox state (method 1) = " + $('#test').prop('checked'));
alert("Checkbox state (method 2) = " + $('#test').is(':checked'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
Check me: <input id="test" type="checkbox" />
Bu küçük çözümü deneyin:
$("#some_id").attr("checked") ? 1 : 0;
veya
$("#some_id").attr("checked") || 0;
Bir onay kutusunun değerini almanın tek doğru yolu aşağıdaki gibidir
if ( elem.checked )
if ( $( elem ).prop( "checked" ) )
if ( $( elem ).is( ":checked" ) )
jQuery'nin web sitesindeki resmi belgelerde açıklandığı gibi. Yöntemlerin geri kalanının onay kutusunun özelliğiyle ilgisi yoktur , öznitelikleri kontrol ederler, bu da yüklendiğinde onay kutusunun ilk durumunu test ettikleri anlamına gelir. Kısacası:
elem.checked
) veya $(elem).prop("checked")
jQuery'ye güvenmek istiyorsanız kullanabilirsiniz.$(elem).is(":checked")
.Cevaplar yanıltıcıdır, lütfen kendinizi aşağıda kontrol edin:
.is(":checked")
ve .prop(":checked")
benim için aynı şekilde çalışıyoruz jQuery 1.10.0
$('#checkbox_id').val();
$('#checkbox_id').is(":checked");
$('#checkbox_id:checked').val();
jQuery(".checkboxClass").click(function(){
var selectedCountry = new Array();
var n = jQuery(".checkboxClass:checked").length;
if (n > 0){
jQuery(".checkboxClass:checked").each(function(){
selectedCountry.push($(this).val());
});
}
alert(selectedCountry);
});
Basit ama etkili ve onay kutusunun bulunacağını bildiğinizi varsayar:
$("#some_id")[0].checked;
Verir true
/false
//By each()
var testval = [];
$('.hobbies_class:checked').each(function() {
testval.push($(this).val());
});
//by map()
var testval = $('input:checkbox:checked.hobbies_class').map(function(){
return this.value; }).get().join(",");
//HTML Code
<input type="checkbox" value="cricket" name="hobbies[]" class="hobbies_class">Cricket
<input type="checkbox" value="hockey" name="hobbies[]" class="hobbies_class">Hockey
Örnek
Demo
Bu sorunun bir jQuery çözümü istemesine rağmen, burada hiç kimse bahsetmediği için saf bir JavaScript cevabı var.
Sadece öğeyi seçin ve (bir boole döndüren) checked
özelliğe erişin .
var checkbox = document.querySelector('input[type="checkbox"]');
alert(checkbox.checked);
<input type="checkbox"/>
change
Etkinliği dinleyen kısa bir örnek :
var checkbox = document.querySelector('input[type="checkbox"]');
checkbox.addEventListener('change', function (e) {
alert(this.checked);
});
<input type="checkbox"/>
İşaretli öğeleri seçmek için :checked
sözde sınıfı ( input[type="checkbox"]:checked
) kullanın.
Burada, denetlenen input
öğelerin üzerinde yineleme yapan ve denetlenen öğenin adlarının eşlenmiş bir dizisini döndüren bir örnek verilmiştir .
var elements = document.querySelectorAll('input[type="checkbox"]:checked');
var checkedElements = Array.prototype.map.call(elements, function (el, i) {
return el.name;
});
console.log(checkedElements);
checked
DOM öğesinde özelliğe kolayca erişilebildiğinde, bunun gibi önemsiz durumlarda jQuery'den kaçınılabileceğini göstermekti . Bu gibi sorular / cevaplar arayan bazı kişiler genellikle jQuery'nin zaman zaman gerekli olmadığından habersizdir. Başka bir deyişle, dar görüşlü insanlar bu cevap için hedef demografi değildir.
İşaretli tüm onay kutularının değerini bir dizi olarak nasıl alacağınız aşağıda açıklanmıştır :
var values = (function() {
var a = [];
$(".checkboxes:checked").each(function() {
a.push(this.value);
});
return a;
})()
işaretli checkboxex'in değerini almak için jquery
:
var checks = $("input[type='checkbox']:checked"); // returns object of checkeds.
for(var i=0; i<checks.length; i++){
console.log($(checks[i]).val()); // or do what you want
});
içinde pure js
:
var checks = document.querySelectorAll("input[type='checkbox']:checked");
for(var i=0; i<checks.length; i++){
console.log(checks[i].value); // or do what you want
});
Aşağıdaki kodu kullanın:
$('input[name^=CheckBoxInput]').val();
$('.class[value=3]').prop('checked', true);
En iyi yol $('input[name="line"]:checked').val()
Ve ayrıca seçilen metni alabilirsiniz $('input[name="line"]:checked').text()
Radyo düğmesi girişlerinize değer niteliği ve adı ekleyin. Tüm girişlerin aynı ad özelliğine sahip olduğundan emin olun.
<div class="col-8 m-radio-inline">
<label class="m-radio m-radio-filter">
<input type="radio" name="line" value="1" checked> Value Text 1
</label>
<label class="m-radio m-radio-filter">
<input type="radio" name="line" value="2"> Value Text 2
</label>
<label class="m-radio m-radio-filter">
<input type="radio" name="line" value="3"> Value Text 3
</label>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('.laravel').click(function(){
var val = $(this).is(":checked");
$('#category').submit();
});
});
<form action="{{route('directory')}}" method="post" id="category">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input name="category" value="{{$name->id}}" class="laravel" type="checkbox">{{$name->name}}
</form>
Sadece dikkat, bugün, 2018'den beri, api yıllar boyunca değişiyor. removeAttr depricated, artık çalışmıyor!
Jquery Bir onay kutusunu işaretleyin veya işaretini kaldırın:
Kötü, artık çalışmıyor.
$('#add_user_certificate_checkbox').removeAttr("checked");
$('#add_user_certificate_checkbox').attr("checked","checked");
Bunun yerine şunları yapmalısınız:
$('#add_user_certificate_checkbox').prop('checked', true);
$('#add_user_certificate_checkbox').prop('checked', false);
$("input:checkbox")
. Ayrıca, sınıf seçicisinde bir yazım hatası var gibi görünüyor ...