Establecer valor de entrada oculta con jquery


93

Estoy tratando de establecer el valor del campo oculto a continuación usando jQuery.

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

Estoy usando este código:

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

Pero no funciona. ¿Qué pasa con mi código?


4
Para mayor claridad, jQuery devuelve una colección de elementos DOM. La prueba no se convierte en el elemento DOM, se convierte en una matriz. Para usar javascript simple a la .value, puede hacer la prueba [0] .value o recorrer la colección si hay más de uno. De lo contrario, test.val ('work!') Funcionaría para usted ya que es un método jQuery en lugar de test.value, que es una propiedad del objeto del elemento DOM.
Scottux

Respuestas:


129

Deberías usar en vallugar de value.

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

33

Esto funcionó para mí:

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

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

1
extraño, se supone que debe hacerlo
Haim Evgi

No hay ningún problema debido a "Type = 'hidden'" en lugar de "type = 'hidden'", ¿verdad? No estoy seguro acerca de los atributos de mayúsculas y minúsculas. Podría estar agarrando pajitas ...
Hogsmill

1
Creo que el problema aquí es el selector ... Creo que debería ser input[name="testing"-> probar entre comillas ... Siempre que establecer algún valor no funcione, intente obtener el elemento primero ... Si no lo obtiene, el el problema no es con .val (), sino probablemente con el selector
Thomas Mulder

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

7

Suponga que tiene una entrada oculta, llamada XXX, si desea asignar un valor a lo siguiente

<script type="text/javascript">

    $(document).ready(function(){
    $('#XXX').val('any value');
    })
</script>

Para su información, las respuestas de solo código generalmente se marcan como de baja calidad y generalmente se eliminan. Intente publicar algún contexto / explicación con su respuesta si desea que se quede y (posiblemente) obtenga una votación a favor.
sgress454

El selector que está usando ( #XXX) es para el idatributo. Si "nombró" una entrada XXX, el selector sería input[name="XXX"].
krummens

4

Para hacerlo con jquery, hazlo de esta manera:

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

O

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

Vea trabajar en este violín .


0

No es necesario establecer un nombre, basta con dar una identificación.

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

y que con jquery puede usar el método 'val ()' como se muestra a continuación:

 $('#testId').val("work");
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.