Faire apparaître un champ en fonction d'une valeur de ma liste déroulante JS

Résolu/Fermé
Heros123 - Modifié le 16 déc. 2020 à 16:19
 Heros123 - 16 déc. 2020 à 16:24
Bonjour,

Je souhaite afficher un champ dans un formulaire en fonction de la valeur sélectionné dans ma liste déroulante.

J'ai commencé quelques chose mais il n'a pas l'air de se soucier de la valeur sélectionné.


<div class="form-group" id="closeorder">
<label for="state">State</label>
<select class="form-control form-control-sm" name="state" onchange="selectionClose('egal', 'close', 'noteclose')" readonly>
<option selected value=<?php echo $ordersStatus['status']; ?>><?php echo $ordersStatus['status']; ?></option>
<option value="close">close</option>
</select>
</br>

<input id="noteclose" name="noteclose" type="text" class="form-control form-control-sm" placeholder="Note close">
</div>

<script>
function selectionClose(idtest, valeur, id_a_afficher) {

$(function (){
if(idtest=='egal'){
if(this.value==valeur) {

$('#'+id_a_afficher).prev().removeClass('hidden');
$('#'+id_a_afficher).removeClass('hidden').addClass('display').removeAttr('disabled').hide().show(500);

} else {

$('#'+id_a_afficher).prev().removeClass('display').addClass('hidden');
$('#'+id_a_afficher).attr('disabled', 'disabled').hide(500);
}
} else if (idtest=='diff') {
if(this.value!=valeur) {

$('#'+id_a_afficher).prev().removeClass('hidden');
$('#'+id_a_afficher).removeClass('hidden').addClass('display').removeAttr('disabled').hide().show(500);

} else {

$('#'+id_a_afficher).prev().removeClass('display').addClass('hidden');
$('#'+id_a_afficher).attr('disabled', 'disabled').hide(500);
}
} else {
alert("Le test d'égalité n'est pas correct !");
}
});
}


</script>
A voir également:

1 réponse

Bon, j'ai trouvé j'ai rajouté un id sur mon champs de sélection, et j'ai remplacé this.value par document.getElementById('idchamps').value

si ça peut en aider d'autres
0