JQuery'de onay kutusu değerini alın


Yanıtlar:


1060

Değer özelliğinin değerini almak için şöyle bir şey yapabilirsiniz:

$("input[type='checkbox']").val();

Veya bunun için bir classveya 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
}

3
Sayfada birden fazla onay kutusu varsa ilk örnek ne yapar? Btw, daha kısa bir şekilde yazılabilir $("input:checkbox"). Ayrıca, sınıf seçicisinde bir yazım hatası var gibi görünüyor ...
Jawa

1
@Jawa: İlki sözdizimini göstermek için sadece bir örnekti ve bu yazım hatası için teşekkürler.
Sarfraz

136
Ben denerseniz $($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.
Adrien

2
@Jawa Per api.jquery.com/checkbox-selector [type="checkbox"] , modern tarayıcılarda daha iyi bir performansa sahiptir :checkbox.
TrueWill

3
True veya false değerine dönmek $('#check_id').val();için değiştirin $('#check_id').is(":checked");.
Matheus Miranda

227

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" />


9
.is ('işaretli') işe yaramadı çünkü olması gerekiyor .is (': işaretli')
mgsloan

Cevabınız için teşekkür ederim. Bu, jQuery prop () işleviyle son teknoloji bir yanıttır
Thomas.Benz

58

Bu küçük çözümü deneyin:

$("#some_id").attr("checked") ? 1 : 0;

veya

$("#some_id").attr("checked") || 0;

Veya !! ($ ("# some_id"). Attr ("işaretli"))
COOLGAMETUBE

34

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ı:

  • Öğeye sahip olduğunuzda ve bunun bir onay kutusu olduğunu bildiğinizde, onun özelliğini okuyabilirsiniz ve bunun için jQuery'ye ihtiyacınız yoktur (yani elem.checked) veya $(elem).prop("checked")jQuery'ye güvenmek istiyorsanız kullanabilirsiniz.
  • Eleman ilk yüklendiğinde (yani varsayılan değer) değeri bilmeniz (veya karşılaştırmanız) gerekiyorsa, bunu yapmanın doğru yolu budur $(elem).is(":checked").

Cevaplar yanıltıcıdır, lütfen kendinizi aşağıda kontrol edin:

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


.is(":checked")ve .prop(":checked")benim için aynı şekilde çalışıyoruz jQuery 1.10.0
Josh

23

Sadece bir şeyleri açıklığa kavuşturmak için:

$('#checkbox_ID').is(":checked")

'True' veya 'false' döndürür


14
$('#checkbox_id').val();
$('#checkbox_id').is(":checked");
$('#checkbox_id:checked').val();

çalışmıyor. ': işaretli' olarak işaretlenmiş bir sütuna ihtiyacınız olabilir
yararlı

9
.val () çalışmıyor. İşaretli ne olursa olsun 'on' değerini döndürür.
Michael Cole

11
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);
    });

10

Basit ama etkili ve onay kutusunun bulunacağını bildiğinizi varsayar:

$("#some_id")[0].checked;

Verir true/false


9
//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


5

Bu sorunun bir jQuery çözümü istemesine rağmen, burada hiç kimse bahsetmediği için saf bir JavaScript cevabı var.

JQuery olmadan:

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"/>


changeEtkinliğ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 :checkedsö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 .

Buraya Örnek

var elements = document.querySelectorAll('input[type="checkbox"]:checked');
var checkedElements = Array.prototype.map.call(elements, function (el, i) {
    return el.name;
});

console.log(checkedElements);


1
Bu soruya cevap vermiyor.
Michael Cole

@MichaelCole - Soruyu tekrar okudum (3 yıl sonra) ve bu gerçekten soruyu cevaplıyor gibi görünüyor, bu yüzden ayrıntılı olarak çekinmeyin.
Josh Crozier

1
"JQuery'de bir onay kutusunun değerini nasıl alabilirim?" -> "Bu sorunun jQuery çözümü istemesine rağmen ... falan filan filan". Bu, diğer gerçek cevapların yolunda bir sabun kutusu cevabı ve bu yüzden aşağı indirdim.
Michael Cole

1
@MichaelCole - Yeterince adil, geri bildirim her zaman takdir edilmektedir. Bu cevabın asıl amacı, özel checkedDOM öğ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.
Josh Crozier

2

İş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;
            })()

2

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
});


0
$('.class[value=3]').prop('checked', true);

1
Soru, belirli bir varsayılan değere sahip bir şeyi nasıl kontrol edeceğinizi değil , değeri nasıl alacağınızı sormaktır.
Quentin

0

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>

-1
<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>

-1

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);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.