2016-04-13 19 views
1

...Onay kutusu kontrol edilmek istendiğinde veya değiştirilmediğinde nasıl değişiklik yapılır? Böyle bir onay kutusu var

ben her zaman o onay kutusu işaretli veya işaretsiz javascript/jquery kodu var isteyen
<input type="checkbox" id="something" name="something" value="25" data-val="25" checked="checked" class="option"> 
    <label for="something">Something</label> 

, bu onun kontrol olmadığını kontrol eder ve 25 değerini eğer atar işaretli veya kontrol edilmemişse 0. Ancak, kontrol ettiğim/işaretini kaldırdığımda test ettiğimde, 25'i tükürmeye devam ediyor. İşaretlemediğimde neden 0'a değişmiyor? Yanlış yaptığım herhangi bir fikrin var mı? değişmez onay kutusunun İlk durum -

$(document).ready(function() { 
    $('.option').on('change', function() { 
     if ($('#something').attr('checked')) { 
      var something = 25; 
     } else { 
      var something = 0; 
     } 
     console.log(something); 
    }); 
}); 
+1

Olası yinelenen [onay kutusu işaretli özelliğini kontrol] Eğlenceli (http://stackoverflow.com/questions/901712/check-checkbox-checked-property) – Robusto

cevap

1

.attr() yöntem "işaretli" stringdöndürür.
Her zaman true olarak değerlendirilecek ve if condition her zaman çalışacaktır.

.prop() metodu kullanarak almak ve bu şekilde elemanların, seçilebilir, kontrol veya devre dışı duruma olarak DOM özelliklerini değiştirmek için kullanılır.

$('.option').on('change', function() { 
    var something; 
    if ($(this).prop('checked')) { 
     something=25; 
     } 
    else { 
     something = 0; 
     } 
     console.log(something); 
}); 

Yoksa checkboxboolean döndürür .is() yöntemiyle onay kontrol edilir eğer: Yani true/falsedeğerleri alabilirsiniz .prop() kullanılarak

. did it ait

$('.option').on('change', function() { 
     var something; 
     if ($(this).is(':checked')) { 
      something=25; 
     } else { 
      something = 0; 
     } 
     console.log(something); 
}); 
+1

. Her gün yeni bir şey öğrenin. Çok teşekkürler! – user3304303