Aggiunta di attributo readonly a tutti gli elementi del modulo

Sto usando jQuery per aggiungere un attributo readonly a tutti gli elementi del modulo ma non riesco a capire come farlo.

Ecco cosa sto cercando:

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

Ho una forma semplice usando label / input per visualizzare gli elementi del modulo. Inoltre sto usando il brusio (plug-in Tool tip) e Formalize (Look and Feel Plug-in)

Prova questo:

 $('#form1 input').attr('readonly', 'readonly'); 
  • Potresti voler includere più elementi #form1 input, #form1 textarea, #form1 select
  • In jQuery, di solito non è necessario eseguire iterazioni sulla raccolta. attr lavorerebbe per una collezione identica a quella di un singolo elemento.
  • Nel tuo caso, #form1 corrispondeva proprio all’elemento

    e each veniva triggersto una volta , per quell’elemento. Per trovare tutti gli elementi (input o non), puoi scrivere #form1 * .

Questo è ancora meglio usare il selettore di input . Nota anche La sola lettura è solo per il tipo di input di testo, password e area di testo. Non funzionerà su elementi selezionati, radio, caselle di controllo, pulsanti. Se si desidera visualizzare ma non consentire loro di digitare o fare clic. Prova a usare disabilitato.

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

Nota: se viene distriggersto, l’input viene distriggersto, selezionato o textarea ma non verrà pubblicato quando inviato. Se ne hai bisogno per post fammelo sapere e posso aiutarti.

Ecco una demo http://jsfiddle.net/j5PAn/

Per ottenere tutti gli elementi della forma:

 $.each($('form').serializeArray(), function(index, value){ $('[name="' + value.name + '"]').attr('readonly', 'readonly'); }); 
 

probabilmente il modo migliore per farlo