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.
Disabled
kontroller 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 readonly
ve disabled
yarı 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 disabled
ve readonly
standart html öznitelikleridir. prop
ile 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());
});