179 votes

Les champs de formulaire désactivés ne soumettent pas de données

Existe-t-il un moyen (avec un drapeau d'attribut ou quelque chose comme ça) de permettre aux champs de formulaire qui sont désactivés de soumettre des données ?

Ou, si ce n'est pas possible, existe-t-il un moyen de bloquer l'édition des champs avec un css ou un autre attribut que désactivé sans les masquer ?

Mon cas particulier pour le moment est un identifiant pour un ensemble de données qui doit être affiché dans le formulaire (non modifiable) - s'il n'y a pas de meilleure solution, je pense que j'utiliserai un champ caché en plus du champ désactivé pour contenir la valeur réelle, le champ désactivé l'affichant.

2 votes

Pourquoi ne pas utiliser "readonly" au lieu de "disabled" ?

224voto

Steve Robillard Points 4752

56voto

Mario Werner Points 190

Comme cela a déjà été mentionné : READONLY ne fonctionne pas pour <input type='checkbox'> y <select>...</select> .

Si vous avez un Form avec des cases à cocher/sélections désactivées ET qui doivent être soumises, vous pouvez utiliser jQuery :

$('form').submit(function(e) {
    $(':disabled').each(function(e) {
        $(this).removeAttr('disabled');
    })
});

Ce code supprime le disabled de tous les éléments lors de la soumission.

23voto

Tom Points 360

Utilisez le CSS pointer-events:none sur les champs que vous voulez "désactiver" (éventuellement avec un fond grisé) qui permet l'action POST, comme :

<input type="text" class="disable">

.disable{
pointer-events:none;
background:grey;
}

Réf : https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events

4voto

Kripa Yadav Points 41

Nous pouvons également utiliser la fonction "readonly only" avec les attributs ci-dessous.

readonly onclick='return false;'

En effet, si nous n'utilisons que la fonction "readonly", les boutons radio seront modifiables. Pour éviter cette situation, nous pouvons utiliser readonly avec la combinaison ci-dessus. Cela limitera l'édition et les valeurs de l'élément seront également transmises lors de la soumission du formulaire.

0voto

Paresh Points 36

Ajouter une CSS ou une classe à l'élément d'entrée qui fonctionne dans les balises de sélection et de texte telles que

style="pointer-events : none;background-color:#E9ECEF"

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