Error al acceder al value de un input oculto
Pongámonos en situación:
Tenemos un script que utiliza los selectores clásicos de un campo de texto y entre ellos está el habitual campo de control:
<script> //Este script lanzará "99" en el alert alert($('input:text[name=id_pagina]').val()); </script> <input type="text" id="foo" name="id_pagina" value="99" />
En él almacenamos valores clave durante el desarrollo pero, cuando finaliza, ocultamos el campo para que quede más curioso de cara al usuario… ¡Pero el script deja de funcionar! ¿Qué ha ocurrido? Y más importante, ¿Cómo lo arreglo?
<script> //Al cambiar el campo de type="text" a hidden, el alert mostrará "Undefined" alert($('input:text[name=id_pagina]').val()); </script> <input type="hidden" id="foo" name="id_pagina" value="99" />
Selector de type hidden
Jquery tiene un selector específico para estas ocasiones:
$('input:hidden[name=id_pagina]').val();
Que podemos aplicar también a cualquier otro atributo del campo. Por ejemplo, al id:
$('input:hidden#foo').val();
Selectores en base a otros atributos
Si evitamos el selector clásico donde especificamos que es un input:text, no habrá problemas en recoger el valor por el name o el id:
$('input[name=id_pagina]').val(); $('input#foo').val();
Los más populares
O sencillamente añadimos un class al campo y utilizamos los ya archiconocidos:
//Para el class $('.personaliza').val(); //Para el id $('#foo').val(); //Donde el input sería: <input type="hidden" id="foo" name="id_pagina" class="personaliza" value="99" />
¿Te hemos ayudado? ¡Ahora ayúdanos tú a nosotros compartiendo el contenido!
Escribir comentario