Firebug tarafından Firefox'ta bulduğum şey bu.
Diğer tarayıcılarda da aynı mı?
Eğer öyleyse, bunun nedeni nedir?
Firebug tarafından Firefox'ta bulduğum şey bu.
Diğer tarayıcılarda da aynı mı?
Eğer öyleyse, bunun nedeni nedir?
Yanıtlar:
Evet, tüm tarayıcılar salt okunur oldukları için devre dışı girişleri göndermemelidir.
Daha fazla bilgi (bölüm 17.12.1)
Özellik tanımları
devre dışı [CI] Bir form denetimi için ayarlandığında, bu Boolean özelliği kullanıcı girişi denetimini devre dışı bırakır. Ayarlandığında, devre dışı niteliğinin bir öğe üzerinde aşağıdaki etkileri vardır:
- Devre dışı bırakılan denetimler odak almaz.
- Devre dışı bırakılmış denetimler sekme gezinmesinde atlanır.
- Devre dışı bırakılan denetimler başarılı olamaz.
Şu öğeler devre dışı bırakılmış özniteliğini destekler: BUTTON, INPUT, OPTGROUP, OPTION, SELECT ve TEXTAREA.
Bu özellik devralınır, ancak yerel bildirimler devralınan değeri geçersiz kılar.
Devre dışı bırakılan öğelerin nasıl oluşturulacağı kullanıcı aracısına bağlıdır. Örneğin, bazı kullanıcı aracıları devre dışı bırakılan menü öğelerini, düğme etiketlerini vb. "Grileştirir".
Bu örnekte, INPUT öğesi devre dışıdır. Bu nedenle, kullanıcı girdisini alamaz ve değeri formla birlikte gönderilmez.
<INPUT disabled name="fred" value="stone">Not. Devre dışı bırakılan özniteliğin değerini dinamik olarak değiştirmenin tek yolu bir komut dosyasıdır.
<input type="hidden">devre dışı bırakılan girdiyle aynı ada / değere sahip bir öğe eklemenizi sağlar .
disabled girdi veri göndermez.
Şu özelliği kullanın readonly:
<input type="text" readonly />
readonlyçalışır, sadece girişe "name" attr ilettiğinizden emin olun.
Özürlüleri taklit etmek için üç şey kullanabilirsiniz:
HTML: readonlyözniteliği (girişte bulunan değer form gönderimi için kullanılabilir. Ayrıca kullanıcı giriş değerini değiştiremez)
CSS: 'pointer-events':'none'(kullanıcının girişi tıklamasını engeller)
HTML: tabindex="-1"(kullanıcının klavyeden girişe gitmesini engelleme)
Gönderilmiyorlar, çünkü W3C spesifikasyonunda böyle diyor .
17.13.2 Başarılı kontroller
Başarılı bir kontrol, gönderim için "geçerlidir". [Kesik]
- Devre dışı bırakılan denetimler başarılı olamaz.
Başka bir deyişle, spesifikasyon devre dışı bırakılan kontrollerin geçersiz kabul edildiğini ve gönderilmemesi gerektiğini söylüyor.
Disabledkontroller başarılı olamaz ve başarılı bir kontrol gönderimi için "geçerli" dir. Devre dışı bırakılan denetimlerin formu göndermemesinin nedeni budur.
İki yani nitelikleri vardır readonlyve disabledyarı salt okunur girişi yapabilirsiniz. Ancak aralarında küçük bir fark var.
<input type="text" readonly />
<input type="text" disabled />
readonlyÖzellik girdi metni devre dışı yapar ve kullanıcılar artık bunu değiştirmek mümkün değildir.disabledözellik yalnızca giriş metninizi devre dışı bırakacak (değiştirilemez) değil aynı zamanda gönderilemez .jQuery yaklaşımı (1):
$("#inputID").prop("readonly", true);
$("#inputID").prop("disabled", true);
jQuery yaklaşımı (2):
$("#inputID").attr("readonly","readonly");
$("#inputID").attr("disabled", "disabled");
JavaScript yaklaşımı:
document.getElementById("inputID").readOnly = true;
document.getElementById("inputID").disabled = true;
PS disabledve readonlystandart html öznitelikleridir. propile tanıştırıldı jQuery 1.6.
salt seçili özelliklerde bile belirli kontroller tıklanabilir
yine de kontrolü devre dışı bırakmak istiyorsanız, ancak değerinin kaydedilmesini istiyorsanız. Gizli bir alan oluşturmayı düşünebilirsiniz. kontrolünüzle aynı değerde.
sonra bir değişiklik jquery oluşturun
$('#your_select_id').change(function () {
$('#your_hidden_selectid').val($('#your_select_id').val());
});