web-dev-qa-db-fra.com

JQuery: Modifier la valeur du champ de saisie masqué

Je vais avoir du mal à définir la valeur d'une entrée cachée. 

Je veux passer le code HTML entre les balises option à la fin du champ masqué, le titre de la page provenant de wp_list_dropdowns() de wordpress. Je l'ai bien renvoyé, et lors de mon événement change, il ajoute correctement quelques CSS (évidemment inutile sur un champ caché, mais j'essayais de déterminer où les choses se détérioraient). Fonctionne si je change l'entrée masquée en une entrée de texte. J'ai vu à plusieurs endroits sur SO que c'était possible (changer la valeur d'une entrée cachée), mais quelque chose me retient maintenant et je ne vois pas la réponse.

Voici le JSFiddle :

JavaScript:

$(".selector").change(function() {
    var $value = $(this).val();
    var $title = $(this).children('option[value='+$value+']').html();
    alert($title); 
    $('input#bacon').val($title).css('border','3px solid blue');
});

HTML:

<select class="selector" name="testselect">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>
</h3>

<input id="bacon" type="hidden" class="bacon" value="" name="testinput">
29
helgatheviking

Votre code jQuery fonctionne parfaitement. Le champ masqué est en cours de mise à jour .

18
alex

C'est simple comme:

$('#action').val("1");

#action est un identifiant de champ de saisie masqué.

32
Yasir Aslam

Semble travailler

$(".selector").change(function() {

    var $value = $(this).val();

    var $title = $(this).children('option[value='+$value+']').html();

    $('#bacon').val($title);

});

Il suffit de vérifier avec votre firebug. Et ne mettez pas les CSS sur les entrées cachées.

5
Santosh Linkha

Si vous faites cela dans Drupal et utilisez l'API de formulaire pour changer le #type de text en "hidden" dans hook_form_alter (par exemple), sachez que le code HTML en sortie aura des wrappers, ID et classes de DIV différents (ou omis) des noms. 

0
Joe Hyde