J'utilise jQuery pour ajouter un attribut en lecture seule à tous les éléments de formulaire, mais je n'arrive pas à comprendre comment faire cela.
Voici ce que j'essaye:
$('#form1').each( function() { $(this).attr('readonly', true); });
J'ai un formulaire simple utilisant label/input pour afficher les éléments de formulaire . J'utilise aussi tipsy (plug-in d'outils) ainsi que Formaliser (plug-in Look and Feel)
Essaye ça:
$('#form1 input').attr('readonly', 'readonly');
#form1 input, #form1 textarea, #form1 select
attr
fonctionnerait pour une collection identique à celle d'un seul élément.#form1
correspond uniquement à l'élément <form>
et each
a été déclenché une fois , pour cet élément. Pour trouver tous éléments (en entrée ou non), vous pouvez écrire #form1 *
.C’est encore mieux utiliser le sélecteur d’entrée . Notez également que la lecture seule concerne uniquement le type de texte saisi, le mot de passe et textarea. Cela ne fonctionnera pas sur certains éléments, radio, cases à cocher, boutons. Si vous souhaitez afficher mais ne leur permettez pas de taper ou de cliquer. Essayez d'utiliser désactivé.
$("#form1 :input").attr("disabled", true);
Remarque: si vous utilisez Disabled, les entrées, la sélection ou les zones de texte sont grisées, mais ne seront pas publiées si elles sont soumises. Si vous en avez besoin, faites-le moi savoir et je peux vous aider.
Voici un démo _ { http://jsfiddle.net/j5PAn/
Pour obtenir tous les éléments de forme:
$.each($('form').serializeArray(), function(index, value){
$('[name="' + value.name + '"]').attr('readonly', 'readonly');
});
<form>
<fieldset disabled>
<input type="text">
<input type="radio">
<input type="checkbox">
</fieldset>
</form>
probablement le meilleur moyen de le faire