Définir la valeur de l'entrée masquée avec jquery

92

J'essaie de définir la valeur du champ caché ci-dessous en utilisant jQuery.

<input type="hidden" value="" name="testing" />

J'utilise ce code:

var test = $("input[name=testing]:hidden");
test.value = 'work!';

Mais ça ne marche pas. Qu'est ce qui ne va pas avec mon code?

TonyM
la source
4
Pour plus de clarté, jQuery renvoie une collection d'éléments DOM. test ne devient pas l'élément DOM, il devient un tableau. Pour utiliser du javascript pur à la .value, vous pouvez faire test [0] .value ou faire une boucle sur la collection s'il y en a plus d'un. Sinon, test.val ('work!') Fonctionnerait pour vous puisqu'il s'agit d'une méthode jQuery plutôt que de test.value qui est une propriété de l'objet élément DOM.
Scottux

Réponses:

128

Vous devriez utiliser à la valplace de value.

<script type="text/javascript" language="javascript">
$(document).ready(function () { 
    $('input[name="testing"]').val('Work!');
});
</script>
Barbe sinistre
la source
33

Cela a fonctionné pour moi:

$('input[name="sort_order"]').attr('value','XXX');
gzveri
la source
28
$('input[name="testing"]').val(theValue);
Haim Evgi
la source
1
étrange, c'est censé le faire
Haim Evgi
Il n'y a pas de problème à cause de "Type = 'hidden'" plutôt que "type = 'hidden'" est-il? Je ne suis pas sûr des attributs de casse mixte. Pourrait être accroché à des pailles ...
Hogsmill
1
Je pense que le problème ici est le sélecteur .. Je pense que cela devrait être input[name="testing"-> tester entre guillemets ... Chaque fois que la définition d'une valeur ne fonctionne pas, essayez d'obtenir l'élément en premier. Si vous ne l'obtenez pas, le le problème n'est pas avec .val (), mais probablement avec le sélecteur
Thomas Mulder
7
var test = $('input[name="testing"]:hidden');
test.val('work!');
Dat Nguyen
la source
7

Supposons que vous ayez une entrée masquée, nommée XXX, si vous souhaitez attribuer une valeur à l'élément suivant

<script type="text/javascript">

    $(document).ready(function(){
    $('#XXX').val('any value');
    })
</script>
arteagasoft
la source
Pour info, les réponses de code uniquement sont généralement signalées comme étant de mauvaise qualité et seront généralement supprimées. Essayez de publier un contexte / une explication avec votre réponse si vous souhaitez qu'elle reste dans les parages et (éventuellement) soit votée.
sgress454
Le sélecteur que vous utilisez ( #XXX) est pour l' idattribut. Si vous avez "nommé" une entrée XXX, le sélecteur serait input[name="XXX"].
krummens
4

Pour le faire avec jquery, procédez comme suit:

var test = $("input[name=testing]:hidden");
test.val('work!');

Ou

var test = $("input[name=testing]:hidden").val('work!');

Voir travailler dans ce violon .

Maykonn
la source
0

Vous n'avez pas besoin de définir un nom, il suffit de donner un identifiant.

<input type="hidden" id="testId" />

et qu'avec jquery, vous pouvez utiliser la méthode 'val ()' comme ci-dessous:

 $('#testId').val("work");
nzrytmn
la source