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?


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>

33

Cela a fonctionné pour moi:

$('input[name="sort_order"]').attr('value','XXX');

28
$('input[name="testing"]').val(theValue);

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!');

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>

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 .


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");
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.