2010-10-26 18 views
26

Tüm form öğelerine salt okunur bir özellik eklemek için jQuery kullanıyorum ancak bunun nasıl yapılacağını anlayamıyorum. Tüm form öğelerine salt okunur nitelik ekleme

$('#form1').each(function() { $(this).attr('readonly', true); }); 

Ben form öğeleri görüntülemek için etiket/girişini kullanarak basit bir form var: Burada

deniyorum budur. Ayrıca kullanıyorum tipsy (Araç ipucu eklentisi) yanı sıra Formalize (Görünüm ve İzlenim Plug-in)

cevap

62

bu deneyin:

$('#form1 input').attr('readonly', 'readonly'); 
  • Sen daha çok öğe eklemek isteyebilir #form1 input, #form1 textarea, #form1 select JQuery'de genellikle koleksiyon üzerinde yineleme yapmanız gerekmez. attr, tek bir öğe için olduğu gibi bir koleksiyon için çalışacaktı. Senin durumunda
  • , #form1 sadece <form> elemanı eşleşti ve each o elemanı için, kez tetiklendi. öğesinin tümünü öğelerini (giriş veya çıkış) bulmak için #form1 * yazabilirsiniz.
+3

sadece teknik bir ama "attr ('o 'true', 'attr' ('readonly', 'readonly') 'dan daha iyidir. jQuery'nin "attr()" yöntemi DOM özelliklerinde çalışır, gerçek HTML öznitelikleri değildir ve "readonly" için özellik değeri ya "tr" olmalıdır. "Ya da" yanlış ". Öyle ki, 'salt okunur', javascript'te doğru olarak yayınlanır, ancak başlangıç ​​için boolean'ı dahil etmek daha iyidir. –

+0

hmm hala şanssız –

+2

@Phill, nasıl * kesin * sizin için çalışmıyor mu? Hiç bir şey yapmıyor mu? Js hatası mı verilsin? Başka bir şey? –

36

Bu daha iyi input selector kullanın. Ayrıca Not Salt okunur sadece metin ve şifre ve textarea giriş tipi içindir. Seçme öğeleri, radyo, onay kutuları, düğmeler üzerinde çalışmayacaktır. Görüntülemek, ancak yazmak veya tıklatmama izin vermek istemiyorsanız. Engelli kullanmayı deneyin.

$("#form1 :input").attr("disabled", true); 

Not: devre dışı kullanarak o, giriş grileştirebilir seçmek veya metin ancak gönderilen bu eleman sonrası olmaz edecektir. Göndermeniz gerekiyorsa haber verin ve size yardımcı olabilirim. İşte

formun tüm unsurlarını almak için bir demo http://jsfiddle.net/j5PAn/

+0

Bu yardımın –

+0

@Phil'e yardım ettim. –

+0

yeniden okumak isteyebilir Merhaba, POST devre dışı bırakılmış form öğeleri istiyorum, bana yardımcı olabilir misiniz? – eXtreme

4

geçerli:

$.each($('form').serializeArray(), function(index, value){ 
    $('[name="' + value.name + '"]').attr('readonly', 'readonly'); 
}); 
muhtemelen
0
<form> 
    <fieldset disabled> 
     <input type="text"> 
     <input type="radio"> 
     <input type="checkbox"> 
    </fieldset> 
</form> 

iyi yolu yapmak salt okunur

İlgili konular