117 votes

Soumettre la valeur d'un champ de saisie désactivé

Je veux désactiver un champ de saisie, mais lorsque je soumets le formulaire, la valeur doit quand même être transmise.

Cas d'utilisation : J'essaie de récupérer la latitude et la longitude de Google Maps et je veux les afficher, mais je ne veux pas que l'utilisateur puisse les modifier.

Est-ce possible ?

1 votes

263voto

Sarfraz Points 168484

Je veux désactiver un champ de saisie dans un formulaire et lorsque je soumets le formulaire, les valeurs de la Le formulaire d'invalidité n'est pas soumis .

Cas d'utilisation : j'essaie d'obtenir la position lat. de Google Map et je veux l'afficher. mais je ne veux pas que l'utilisateur puisse le modifier .

Vous pouvez utiliser le readonly dans votre champ de saisie

<input type="text" readonly="readonly" />

2 votes

Notez que l'entrée pourra toujours recevoir le focus. Voir : stackoverflow.com/questions/5443952/

5 votes

Excellente réponse 8 ans plus tard. Je voulais juste ajouter que pour que le texte apparaisse non modifiable, j'ajoute le css : input:read-only { color:grey; }

0 votes

Wow, 10 ans plus tard, me voilà. Je me débats avec les handicapés. readonly="readonly" est la solution. Merci beaucoup.

24voto

Abu Sulaiman Points 1297

Je sais que c'est vieux mais je viens de rencontrer ce problème et aucune des réponses ne convient. La solution de nickf fonctionne mais elle nécessite du javascript. La meilleure façon de désactiver le champ tout en transmettant la valeur est d'utiliser un champ de saisie caché pour transmettre la valeur au formulaire. Par exemple,

<input type="text" value="22.2222" disabled="disabled" />
<input type="hidden" name="lat" value="22.2222" />

De cette façon, la valeur est transmise mais l'utilisateur voit le champ grisé. L'attribut readonly ne le grise pas.

11voto

pjnovas Points 507

Vous pouvez également utiliser l'attribut Readonly : l'entrée ne sera pas grisée mais elle ne sera pas modifiable.

<input type="text" name="lat" value="22.2222" readonly="readonly" />

1voto

nickf Points 185423

Les éléments d'entrée ont une propriété appelée disabled . Lorsque le formulaire est soumis, il suffit d'exécuter un code comme celui-ci :

var myInput = document.getElementById('myInput');
myInput.disabled = true;

5 votes

Pour répondre à la question initiale, afin de transmettre la valeur pendant la soumission du formulaire, la propriété "disabled" devrait être "false" au lieu de "true".

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