1006 votes

Les cases à cocher HTML peuvent-elles être définies sur readonly?

Je pensais qu'ils pourraient l'être, mais comme je ne mets pas mon argent là où ma bouche était (pour ainsi dire) la définition de l'attribut readonly ne semble pas vraiment faire quoi que ce soit.

Je préfère ne pas utiliser désactivé, puisque je veux que les cases à cocher soient soumises avec le reste du formulaire, je ne veux pas que le client puisse les changer dans certaines circonstances.

723voto

Yanni Points 1043

vous pouvez utiliser ceci:

 <input type="checkbox" onclick="return false"/>
 

Cela fonctionne car retourner false à partir de l'événement onclick arrête la chaîne d'exécution en cours.

465voto

ConroyP Points 24021

READONLY ne fonctionne pas sur les cases à cocher comme il vous empêche de l'édition d'un champ de valeur, mais avec une case à cocher vous êtes réellement à éditer le champ de l' état (on || off)

À partir de faqs.org:

Il est important de comprendre que READONLY seulement empêche l'utilisateur de modifier la valeur du champ, pas d'interaction avec le terrain. Dans les cases à cocher, par exemple, vous pouvez vérifier ou de les désactiver (donc l'état COCHÉ) mais vous ne modifiez pas la valeur du champ.

Si vous ne souhaitez pas utiliser disabled , mais encore envie de présenter la valeur, comment au sujet de l'envoi de la valeur d'un champ caché et juste l'impression de son contenu à l'utilisateur lorsqu'elles ne répondent pas à la modifier critères? par exemple

// user allowed change
if($user_allowed_edit)
{
    echo '<input type="checkbox" name="my_check"> Check value';
}
else
{
    // Not allowed change - submit value..
    echo '<input type="hidden" name="my_check" value="1" />';
    // .. and show user the value being submitted
    echo ' Check value: 1';
}

407voto

powtac Points 18619

C'est une case à cocher que vous ne pouvez pas changer:

 <input type="checkbox" disabled="disabled" checked="checked">
 

Ajoutez simplement disabled="disabled" en tant qu'attribut.

75voto

Grant Wagner Points 14085
 <input type="checkbox" onclick="this.checked=!this.checked;">
 

Mais vous devez absolument valider les données sur le serveur pour vous assurer qu'elles n'ont pas été modifiées.

58voto

summsel Points 41

une autre "solution simple":

 <!-- field the holds the data -->
<input type="hidden" name="my_name" value="1" /> 
<!-- visual dummy for the user -->
<input type="checkbox" name="my_namevisual_dummy" value="1" checked="checked" disabled="disabled" />
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X