$input.disabled = true;
veya
$input.disabled = "disabled";
Standart yol hangisidir? Tersine, engellenmiş bir girişi nasıl etkinleştirirsiniz?
$input.disabled = true;
veya
$input.disabled = "disabled";
Standart yol hangisidir? Tersine, engellenmiş bir girişi nasıl etkinleştirirsiniz?
Değiştirmek için disabled
özelliği kullanmalısın .prop()
işlevi.
$("input").prop('disabled', true);
$("input").prop('disabled', false);
.prop()
işlev mevcut değil, ancak .attr()
benzer:
Engelli özniteliğini ayarlayın.
$("input").attr('disabled','disabled');
Tekrar etkinleştirmek için uygun yöntem kullanmaktır .removeAttr()
$("input").removeAttr('disabled');
Her zaman gerçek DOM nesnesine güvenebilirsiniz ve yalnızca bir öğeyle ilgileniyorsanız, diğer iki seçenekten muhtemelen biraz daha hızlıdır:
// assuming an event handler thus 'this'
this.disabled = true;
Kullanmanın avantajı .prop()
veya .attr()
yöntemleri, seçili öğelerin bir demet için özelliği ayarlayabilirsiniz.
Not: 1.6'da bir .removeProp()
çok benzeyen bir yöntem removeAttr()
, ama o KULLANILMAMALI gibi yerel mülklerde 'disabled'
Belgelerden alıntı:
Not: İşaretli, devre dışı veya seçili gibi yerel özellikleri kaldırmak için bu yöntemi kullanmayın. Bu özellik tamamen kaldırılacak ve kaldırıldıktan sonra tekrar elemanlara eklenemez. Bu özellikleri false olarak ayarlamak için .prop () öğesini kullanın.
Aslında, bu yöntem için birçok meşru kullanım olduğundan şüphe duyuyorum, boolean prodüksiyonları, onları "öznitelik" benzerleri gibi "onları kaldırma" yerine, false olarak ayarlamanız gerektiği şekilde yapılır.
Sadece yeni sözleşmeler için ve & 's ileriye dönük uyarlanabilir hale getirmek için (ECMA6 ile büyük ölçüde değişmedikçe (????):
$(document).on('event_name', '#your_id', function() {
$(this).removeAttr('disabled');
});
ve
$(document).off('event_name', '#your_id', function() {
$(this).attr('disabled','disabled');
});
// Disable #x
$( "#x" ).prop( "disabled", true );
// Enable #x
$( "#x" ).prop( "disabled", false );
Bazen giriş veya textarea gibi form öğelerini devre dışı bırakmanız / etkinleştirmeniz gerekir. Jquery, bu özelliği devre dışı bırakılmış özniteliği "devre dışı" olarak ayarlamanıza yardımcı olur. Örneğin:
//To disable
$('.someElement').attr('disabled', 'disabled');
Devre dışı bırakılmış öğeyi etkinleştirmek için bu öğeden "disabled" özelliğini kaldırmanız veya dizgisini boşaltmanız gerekir. Ör.
//To enable
$('.someElement').removeAttr('disabled');
// OR you can set attr to ""
$('.someElement').attr('disabled', '');
bakın:http://garmoncheg.blogspot.fr/2011/07/how-to-disableenable-element-with.html
$("input")[0].disabled = true;
veya
$("input")[0].disabled = false;
Bunu küresel bir yere koyabilirsiniz:
$.prototype.enable = function () {
$.each(this, function (index, el) {
$(el).removeAttr('disabled');
});
}
$.prototype.disable = function () {
$.each(this, function (index, el) {
$(el).attr('disabled', 'disabled');
});
}
Ve sonra şöyle bir şeyler yazabilirsiniz:
$(".myInputs").enable();
$("#otherInput").disable();
Sadece mevcut durumu tersine çevirmek istiyorsanız (geçiş butonu davranışı gibi):
$("input").prop('disabled', ! $("input").prop('disabled') );
2018 için güncelleme:
Artık jQuery'ye gerek yok ve o zamandan beri bir süredir var. document.querySelector
veya document.querySelectorAll
(birden çok öğe için) neredeyse tam olarak aynı işi yapar, artı daha açık olanlar getElementById
, getElementsByClassName
, getElementsByTagName
"Girdi onay kutusu" sınıfının bir alanını devre dışı bırakma
document.querySelector('.input-checkbox').disabled = true;
veya çoklu elemanlar
document.querySelectorAll('.input-checkbox').forEach(el => el.disabled = true);
Form öğesini devre dışı bırakmak veya etkinleştirmek veya jQuery kullanarak dinamik olarak denetlemek için jQuery prop () yöntemini kullanabilirsiniz. Prop () yöntemi jQuery 1.6 ve üstü gerektirir.
Örnek:
<script type="text/javascript">
$(document).ready(function(){
$('form input[type="submit"]').prop("disabled", true);
$(".agree").click(function(){
if($(this).prop("checked") == true){
$('form input[type="submit"]').prop("disabled", false);
}
else if($(this).prop("checked") == false){
$('form input[type="submit"]').prop("disabled", true);
}
});
});
</script>
Onları kullanmanın birkaç yolu vardır, herhangi bir elemanı etkinleştirebilir / devre dışı bırakabilirsiniz. :
Yaklaşım 1
$("#txtName").attr("disabled", true);
Yaklaşım 2
$("#txtName").attr("disabled", "disabled");
JQuery 1.7 veya daha yüksek bir sürüm kullanıyorsanız, attr () yerine prop () öğesini kullanın.
$("#txtName").prop("disabled", "disabled");
Eğer herhangi bir elemanı etkinleştirmek istiyorsanız, o zaman bunu devre dışı bırakmak için yaptığınız şeyin tam tersini yapmak zorundasınız. Ancak jQuery, herhangi bir özelliği kaldırmak için başka bir yol sağlar.
Yaklaşım 1
$("#txtName").attr("disabled", false);
Yaklaşım 2
$("#txtName").attr("disabled", "");
Yaklaşım 3
$("#txtName").removeAttr("disabled");
Yine, jQuery 1.7 veya daha yüksek bir sürüm kullanıyorsanız, attr () yerine prop () öğesini kullanın. Budur. JQuery'yi kullanarak herhangi bir elemanı nasıl etkinleştirir veya devre dışı bırakırsınız.