Prop yönteminin tanıtılmasıyla, şimdi bir onay kutusunun işaretini kaldırmanın kabul edilen yolunu bilmem gerekiyor. Bu mu:
$('input').filter(':checkbox').removeAttr('checked');
veya
$('input').filter(':checkbox').prop('checked',false);
Prop yönteminin tanıtılmasıyla, şimdi bir onay kutusunun işaretini kaldırmanın kabul edilen yolunu bilmem gerekiyor. Bu mu:
$('input').filter(':checkbox').removeAttr('checked');
veya
$('input').filter(':checkbox').prop('checked',false);
Yanıtlar:
jQuery 3
JQuery 3 itibariyle removeAttrgelmez değil tekabül özelliğini ayarlayın falseartık:
Kullanarak, jQuery 3.0 öncesinde
.removeAttr()bir boolean özniteliği üzerinde gibichecked,selectedyareadonlyda tekabül adında özelliğini ayarlayın olurdufalse. Bu davranış, Internet Explorer'ın eski sürümleri için gerekliydi ancak modern tarayıcılar için doğru değildir çünkü öznitelik başlangıç değerini ve özellik geçerli (dinamik) değeri temsil eder.
.removeAttr( "checked" )Bir DOM öğesinde kullanmak neredeyse her zaman bir hatadır . Bunun yararlı olabileceği tek zaman, DOM'un daha sonra bir HTML dizesine geri serileştirilmesidir. Diğer tüm durumlarda.prop( "checked", false )bunun yerine kullanılmalıdır.
Bu nedenle, yalnızca .prop('checked',false)bu sürümü kullanırken doğru yoldur.
Orijinal cevap (2011'den itibaren):
Temel boole özelliklerine sahip öznitelikler için (bunlardan checkedbiri), removeAttrtemel alınan özelliği otomatik olarak olarak ayarlar false. (Bunun jQuery 1.6.1'de eklenen geriye dönük uyumluluk "düzeltmeleri" arasında olduğunu unutmayın).
Yani, ya işe yarayacak ... ama verdiğiniz ikinci örnek (kullanarak prop) ikisinden daha doğru olanı. Amacınız onay kutusunun işaretini kaldırmaksa, özniteliği değil gerçekten özelliği etkilemek istersiniz ve removeAttrbunu yapmak için herhangi bir işlem yapmanıza gerek yoktur .
removeProp() İşaretli, devre dışı bırakılmış veya seçili gibi yerel özellikleri kaldırmak için [ ] kullanmayın . Bu, özelliği tamamen kaldırır ve kaldırıldıktan sonra öğeye tekrar eklenemez. .prop()Bu özellikleri false olarak ayarlamak için kullanın yerine." removePropgerçekten yalnızca özel özelliklerle kullanılmak üzere tasarlanmıştır.
use checked: onay kutusunun true, false özelliği.
jQuery:
if($('input[type=checkbox]').is(':checked')) {
$(this).prop('checked',true);
} else {
$(this).prop('checked',false);
}
Hem prop hem de attr kullanmanızı tavsiye ederim çünkü Chrome ile ilgili problemlerim vardı ve her iki işlevi kullanarak da çözdüm.
if ($(':checkbox').is(':checked')){
$(':checkbox').prop('checked', true).attr('checked', 'checked');
}
else {
$(':checkbox').prop('checked', false).removeAttr('checked');
}
$("input[type='checkbox'], input[type='radio']").prop("checked", false).attr("checked", false).removeAttr("checked");
Aynı şeyi yapmanın başka bir alternatifi de type = checkbox niteliğine göre filtrelemektir :
$('input[type="checkbox"]').removeAttr('checked');
veya
$('input[type="checkbox"]').prop('checked' , false);
Öznitelikler ve özellikler arasındaki farkın belirli durumlarda önemli olabileceğini unutmayın. JQuery 1.6'dan önce , .attr () yöntemi bazen bazı öznitelikleri alırken özellik değerlerini hesaba katıyordu ve bu da tutarsız davranışlara neden olabilirdi. JQuery 1.6'dan itibaren, .prop () yöntemi özellik değerlerini açıkça almak için bir yol sağlarken .attr () öznitelikleri alır.