Passer un paramètre dans un select disabled

  • Auteur de la discussion Auteur de la discussion rudddy
  • Date de début Date de début
Bonjour

j'ai dans mon formulaire un
Code:
<select id="monselect" name="monselect" disabled="true">
<option value="1" selected="selected">EN COURS</option>
<option value="2">CLOTURE</option>
</select>

le problème est que quand je valide mon formulaire, la valeur de l'élément sélectionné n'est pas stocke dans monselect.

est-ce du au fait qu'il soit en disabled ? si oui, commet contourner ce souci ?

merci
 
Re: Passer un parmatère dans un select disabled

allez tag résolu :)
Code:
<select id="monselect" name="monselect" disabled="true">
<option value="1" selected>EN COURS</option>
<option value="2">CLOTURE</option>
</select>
 
Re: Passer un parmatère dans un select disabled

je l'ai bien sûr, puisque les paramètres passent sans le disabled

j'insiste sur le fait que c'est le disabled qui fait tout foirer
 
clair!
en effet j'ai testé le code et idem chez moi ce qui parait normal.

cependant il semblerait que cela ne soit pas possible (récupérer la valeur) d'un autre coté ça semble normal puisque sémantiquement parlant c'est une erreur de chercher a récupérer une valeur "disable"

* quel est l'interet ?
* peux tu recuperer cette valeur ailleurs ? et l'inclure dans un input type="hidden" par exemple ?
 
L'intérêt c'est dans un intranet, l'accès à ce champ est désactivé suivant le type de permission de l'utilisateur.

Mais je voudrais quand même qu'il puisse le voir, donc je le mets en disabled pour qu'il ait un accès en "lecture seule"

le problème est que lors de la validtaion la valeur est perdue, puisque qu'il reçoit 0 au lieu du bon value.

existe t-il un équivalent à disabled en js ou jquery par exemple, mais qui conserverait la valeur du champ ?

EDIT : ce qui est bizarre c'est que dans un type="checkbox", le disabled n'empêche pas le passage de paramètre ...
 
Pourquoi ne pas mettre le disabled="disabled" sur chaque <option> ... comme ça le select est totalement lisible et on ne px choisir aucune option.

Edit: je viens de tester, ça ne va pas mieux :(
Edit2: Solution: avec readonly="readonly" sur le <select>, on peux choisir d'autres options, mais c'est bien en lecture seule et $_POST['monselect'] = 2
 
spout a dit:
Edit2: Solution: avec readonly="readonly" sur le <select>, on peux choisir d'autres options, mais c'est bien en lecture seule et $_POST['monselect'] = 2

je testerais demain et te fais un retour

merci encore
 
J'avais mal testé, l'attribut readonly ne fonctionne pas avec les <select>.
Et HTML Validator: Avertissement: <select> proprietary attribute "readonly" :(

Autre solution en Javascript:
Code:
<select id="monselect" name="monselect" onfocus="this.initialSelect = this.selectedIndex;" onchange="this.selectedIndex = this.initialSelect;">
<option value="1" selected="selected">EN COURS</option>
<option value="2">CLOTURE</option>
</select>
 
spout a dit:
J'avais mal testé, l'attribut readonly ne fonctionne pas avec les <select>.
excat je viens de tester

spout a dit:
Autre solution en Javascript:
Code:
<select id="monselect" name="monselect" onfocus="this.initialSelect = this.selectedIndex;" onchange="this.selectedIndex = this.initialSelect;">
<option value="1" selected="selected">EN COURS</option>
<option value="2">CLOTURE</option>
</select>
je viens de tester, ca marche mais pour le coup c'est vraiment source d'erreur et pas du tout user friendly car la personne pense que ca peut se changer mais à la fin ca se change pas ...
 
rudddy a dit:
je viens de tester, ca marche mais pour le coup c'est vraiment source d'erreur et pas du tout user friendly car la personne pense que ca peut se changer mais à la fin ca se change pas ...
Donc tu veux le même affichage que lorsque le <select> est disabled (grisé) et qu'on ne peut voir les <option> (sauf le selected) ?
Si c'est juste pour "griser" le select c'est pas un problème, faut voir si tu veux afficher les autres <options>, mais là est la confusion...
 
Sullyvan a dit:
bonjour,

pourquoi ne pas réactiver le select lors de l'envoi de la requête avec un onsubmit ?

sullyvan bien vu :

Code:
<form action="test.php" method="post" onsubmit="monselect2.disabled='';">
	<select name="monselect2" id="monselect2" disabled="disabled">
		<option value="1">option 1</option>
		<option value="2" selected="selected">option 2</option>
		<option value="3">option 3</option>
		<option value="4">option 4</option>
		<option value="5">option 5</option>		
	</select>

ca marche

merci +1 reco
 
je rouvre le topic car malheureusement c'est assez lourd à mettre en place car ce select placé dasn un include est appelé dans une centaine de pages php différentes. je me vois mal faire chaque page en cherchant la balise <form et en rajoutant un onSubmit !

;-(
 
Tu as tjs jQuery dans ce site ?
Je t'ai déjà aidé une fois avec: each()
Code:
$(document).ready(function(){
$('form').each(function() {
    $(this).attr('onsubmit', "monselect2.disabled='';");
  });
});

:!: c'est pour tous les <form>... adapter le selecteur (si le form à un id, class)
 
merci pour la reco.

Et sans Jquery ajouterce code en dessous du select
Code:
<script type="text/javascript">document.getElementById('monselect2').form.onsubmit=function(){document.getElementById('monselect2').disabled='';}</script>
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut