Pregunta

Tengo un campo de entrada sencilla dentro de una etiqueta de formulario:

<body>
  <form action="#">
      <label>Input</label>
      <input type="hidden" id="foo" name="foo" />

  </form>
</body>

He intentado establecer este valor a partir de un archivo JS:

$(document).ready(function(){
    $('#foo').val('foo')
})

pero en el código HTML el atributo no se establece en absoluto. Si trato de establecer el tipo de entrada a "botón" o cualquier otra cosa, funciona. Yo simplemente no puede hacerlo con un campo de entrada hidden. ¿Qué estoy haciendo mal?

¿Fue útil?

Solución

¿Se puede recuperar el valor del campo oculto si se establece la etiqueta de val?

por ejemplo.

<input type="hidden" id="foo" name="foo" value="bar" />

$(document).ready(function(){
  alert($('#foo').val());
})

Otros consejos

lo he descubierto. El valor se establece por jQuery pero cuando vi la fuente el nuevo valor no se muestra. He intentado esto (gracias a Fermín):

$('#foo').val('poo')
alert($('#foo').val())

y se visualiza el valor modificado.

La mejor respuesta que encontré fue en la forma http: //forum.jquery. com / tema / pasa-valor-a-forma-campo oculto .

En lugar de $('#Data').val(data); Cuando el campo ID oculta es 'Datos'

Uso $('input[name=Data]').val(data);

funciona perfectamente para mí

También he estado luchando con esto. Si se establece un valor de por ejemplo '0' inicial, y luego ver el DOM usando algo como Firebug se dará cuenta de que el DOM a continuación, actualiza. Por alguna razón, si el valor inicial se establece en NULL o una cadena vacía, el DOM no se actualiza, pero el valor se almacena en realidad todavía.

Se puede probar esta alertando al val después de haber establecido que (como se sugiere en los mensajes anteriores)

he tenido este problema cuando POST-ing mi forma y mi script PHP no podían obtener el valor POST-ed. He utilizado este:

$('#elemId').attr("name", theValue);

Espero que ayuda.

que había necesidad de ver todo el archivo, pero mi conjetura es o no está incluyendo el archivo de origen jquery.js o si tiene múltiples elementos con un diámetro interior de foo

Yo tenía el mismo problema con un campo de entrada oculta. Id i establecer el valor inicial de 0, que funciona bien, pero a veces no quería tener un valor inicial de 0. Así que probé con value ="", un espacio en blanco, y funciona para mí también. Si se llena la dinámica valor a partir de PHP que podría hacer value="<?= $val+0; ?>" si 0 es bien para usted, o si value="<?= $val; ?> " un espacio en blanco está muy bien.

Yo sé que es demasiado tarde pero aún así esto podría ayudar a alguien .... Si ninguna de las soluciones de trabajo por encima, acaba de hacer esto ...

$(document).ready(function() {
$('#foo').attr("value","foo") });

Ninguna de las soluciones anteriores funcionó para mí.

que tenía que hacer lo siguiente para que funcione:

$('#foo').val(data).blur();

En lugar de inicializar el atributo de valor con una cadena de inicialización de su entrada como esta.

<input type="hidden" name="foo" id="foo" value="${foo}">

"foo" contendrá el nuevo valor se establece también.

He confirmado que ajustar el valor de un campo oculto no trabajo con un selector de jQuery como este ...

$('[name="my_field"]').val('Something');

no actualizará un campo oculto ... un poco chocante.

<input type="hidden" name="my_field" id="my_field">

se vio obligado a utilizar un campo oculto en lugar de CSS.

<input type="text" name="my_field" id="my_field" style="display:none">

Al parecer hay otros problemas con el uso de la id de un campo oculto, así ... valor Conjunto de campo oculto en un formulario utilizando jQuery ".val ()" no funciona

Nota:. Asegúrese de obtener el valor de la consola y no mediante la inspección

$('[name="my_field"]').val();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top