Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Problema con modificar un value

Estas en el tema de Problema con modificar un value en el foro de Javascript en Foros del Web. Hola a todos, tengo un problema modificando un value. Código HTML: <input type= "hidden" id= "cant_campos" name= "cant_campos" value= "0" /> He probado de mil ...
  #1 (permalink)  
Antiguo 21/11/2012, 13:52
 
Fecha de Ingreso: noviembre-2012
Ubicación: Spain
Mensajes: 28
Antigüedad: 11 años, 5 meses
Puntos: 0
Pregunta Problema con modificar un value

Hola a todos, tengo un problema modificando un value.

Código HTML:
 <input type="hidden" id="cant_campos" name="cant_campos" value="0" /> 
He probado de mil maneras, se me esta pasando algo por alto y no se que puede ser.

Las formas que he intentado son.

Código HTML:
document.getElementById('cant_campos').value = 4;

document.getElementById('cant_campos').setAttribute("value", 4);

var d = document.getElementById('cant_campos');

d.setAttribute("value", 4);
No se que mas probar, porfavor ayudenme.

Gracias de antemano.
  #2 (permalink)  
Antiguo 21/11/2012, 22:21
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 3 meses
Puntos: 30
Respuesta: Problema con modificar un value

el codigo html lo ejecutas en el body o en el head?,tiene que ser en el head o a través de un src declarado en el head del documento html, recuerda que necesitas un evento onload para llamar a ese tipo de scripts que modifican una parte del html.
  #3 (permalink)  
Antiguo 22/11/2012, 02:04
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: Problema con modificar un value

lo puedes ejecutar en el body siempre que sea después
SI:
Código HTML:
Ver original
  1. <input type="hidden" id="cant_campos" name="cant_campos" value="0" />
  2. <script>document.getElementById('cant_campos').value = 4;</script>

NO
Código HTML:
Ver original
  1. <input type="hidden" id="cant_campos" name="cant_campos" value="0" />
  2. <script>document.getElementById('cant_campos').value = 4;</script>
__________________
@angelxab Twiiter
  #4 (permalink)  
Antiguo 22/11/2012, 03:11
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 3 meses
Puntos: 30
Respuesta: Problema con modificar un value

El caso es que necesitaba llamarlo en un onload, ademas javascript siempre tiene que ser declarado antes del body.
  #5 (permalink)  
Antiguo 22/11/2012, 06:53
 
Fecha de Ingreso: noviembre-2012
Ubicación: Spain
Mensajes: 28
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Problema con modificar un value

Lo ejecuto en el head, y efectivamente con el onload, siento no haberlo especificado, y sigue siendo lo mismo. No cambia el value. :S
  #6 (permalink)  
Antiguo 22/11/2012, 07:13
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con modificar un value

Cita:
Iniciado por KhanS Ver Mensaje
Hola a todos, tengo un problema modificando un value.

Código HTML:
 <input type="hidden" id="cant_campos" name="cant_campos" value="0" /> 
He probado de mil maneras, se me esta pasando algo por alto y no se que puede ser.

Las formas que he intentado son.

Código HTML:
document.getElementById('cant_campos').value = 4;

document.getElementById('cant_campos').setAttribute("value", 4);

var d = document.getElementById('cant_campos');

d.setAttribute("value", 4);
No se que mas probar, porfavor ayudenme.

Gracias de antemano.
Compañero @KhanS
Si quieres que te ayudemos, tu también debes hacerlo,
Estás tratando de modificar el valor de un input, ahora,
y tu html completo? ¿dónde está?,
Estas realizando el cambio desde una función?,
Ese cambio debe realizarse automaticamente?,
Como y dónde estás declarando tu script?

Vamos a jugar con las posibilidades

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. function verifica(){
  9. alert(document.getElementById('cant_campos').value);
  10. }
  11. function asignar_valor(){
  12. document.getElementById('cant_campos').value = 4;
  13. }
  14. //]]>
  15. </head>
  16. <form action="#">
  17. <input type="hidden" id="cant_campos" name="cant_campos" value="0" />
  18. </form>
  19. <button onclick="asignar_valor();">Asignar valor 4</button>
  20. <button onclick="verifica();">Verificar</button>
  21. </body>
  22. </html>

En este primer ejemplo estás llamando a la función que modifica desde un boton, verificá antes y después

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. function asignar_valor(){
  9. document.getElementById('cant_campos').value = 4;
  10. }
  11. function verifica(){
  12. alert(document.getElementById('cant_campos').value);
  13. }
  14. window.onload = asignar_valor;
  15. //]]>
  16. </head>
  17. <form action="#">
  18. <input type="hidden" id="cant_campos" name="cant_campos" value="0" />
  19. </form>
  20. <button onclick="verifica();">Verificar</button>
  21. </body>
  22. </html>

En este segundo ejemplo estás llamando la función en con onload, es decir que no se ejecutará hasta la lectura completa del DOM, con lo que conseguirás que el elemento input pueda ser correctamente identificado por su id


Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. </head>
  7. <form action="#">
  8. <input type="hidden" id="cant_campos" name="cant_campos" value="0" />
  9. </form>
  10. <button onclick="verifica();">Verificar</button>
  11. <script type="text/javascript">
  12. //<![CDATA[
  13. function verifica(){
  14. alert(document.getElementById('cant_campos').value);
  15. }
  16. document.getElementById('cant_campos').value = 4;
  17. //]]>
  18. </body>
  19. </html>

finalmente, en este caso estás realizando la modificación sin llamar a una función, pero como ves es necesario ejecutar la script posteriormente a que el elemento input haya sido leído por el navegador, es decir, la script se ubica justo antes del cierre del body.

este último caso nos sirve para indicarle a @albuss, que su afirmación NO es correcta, una script No tiene porque ser declarada antes del body.
Sería bueno saber el porque de la valoración negativa a @angel1993, cuyo ejemplo es correcto.

Te señalo @KhanS que estas son cuestiones elementales de javascript, y no deberían ser aprendidas posteando en un foro sino "leyendo los manuales".
Para la próxima por favor, se más preciso en tus enunciados

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 22/11/2012 a las 08:16
  #7 (permalink)  
Antiguo 22/11/2012, 09:23
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 3 meses
Puntos: 30
Respuesta: Problema con modificar un value

Emprear, ami siempre y digo siempre, me han enseñado que "tus scripts tienen que ir en el head" , quizás no sea obligatorio estrictamente, pero es lo mas razonable y lo mas lógico.Ademas, no hace mucho vosotros, los mas expertos marcabais la diferencia entre lo ideal y lo posible, lo que puede ser o lo que debe ser, y este creo que es uno de esos casos en que debe ser.


Ademas, el problema, este en concreto ya estaba claramente resuelto con mi primera respeta, lo se por que al empezar con esto de Js también tuve problemas de este tipo, y simplemente se solucionan al saber que este tipo de script requieren invento "post" load de la pagina, un ejemplo es que el puse yo, el onload pero cualquiera otro habría servido.
  #8 (permalink)  
Antiguo 22/11/2012, 09:26
Avatar de soledaddelapera  
Fecha de Ingreso: noviembre-2012
Mensajes: 3
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Problema con modificar un value

Amigos del foro muchas Gracias por las respuestas tenia un problema similar y ya lo solucione.
  #9 (permalink)  
Antiguo 22/11/2012, 09:39
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con modificar un value

@albuss, ya te lo señalé con lo de las "comillas simples", en este caso vos no podés afirmar
Cita:
ademas javascript siempre tiene que ser declarado antes del body.
Toda mi valoración se reduce a eso.
En cuanto a tu segunda respuesta, si, puede ser correcta, o no, fijate que los elementos porporcionados por @KhanS en su primer post son incompletos.

Eso del evento onload es una arbitrariedad de tu parte. Imaginate que hiciese esto

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <input id="uno" .... value="" />
  6. <?php
  7. if($_POST['algo'] == 1){
  8. echo "
  9. <script>
  10. document.getElementById('uno').value = 'z';
  11. </script>
  12. ";
  13. }
  14. ?>
  15. </body>
  16. </html>

Sería completamenet apropiado, se entiende.

Es cierto, @KhanS no habló de php, pero no sería la primera vez que alguien nos muestra código javascript que después nos enteramos que está en un php.

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #10 (permalink)  
Antiguo 24/11/2012, 03:20
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: Problema con modificar un value

No sé que manía con declarar Scripts y style es head, puedes declararlos donde quieras, me recuerda mucho a la pelea de Tablas VS div´s..
Que me hace muchisima gracia, por que hay webs que tiene 4 lineas pero enlazan .js y .css enormes.... que la primera vez que entras te quedas como 4 segundos cacheandolo todo.
A veces pienso que la gente quiere imponer doctrinas para profesionalizar el sector, sinceramente.

Creo que me ha quedado un poco seriete, pero nada más lejos de la realidad :)
__________________
@angelxab Twiiter
  #11 (permalink)  
Antiguo 24/11/2012, 07:20
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con modificar un value

Cita:
Iniciado por angel1993 Ver Mensaje
No sé que manía con declarar Scripts y style es head, puedes declararlos donde quieras, me recuerda mucho a la pelea de Tablas VS div´s..
Que me hace muchisima gracia, por que hay webs que tiene 4 lineas pero enlazan .js y .css enormes.... que la primera vez que entras te quedas como 4 segundos cacheandolo todo.
A veces pienso que la gente quiere imponer doctrinas para profesionalizar el sector, sinceramente.

Creo que me ha quedado un poco seriete, pero nada más lejos de la realidad :)
No @angel1993, volvés a incurrir en el mismo error que señalé antes, decir
Cita:
puedes declararlos donde quieras
es tan impropio como sentenciar
Cita:
javascript siempre tiene que ser declarado antes del body
Con solo ver mi tercer ejemplo te vás a dar cuenta, esa script si fuese declarada en el head perdería funcionalidad.

En conclusión, y si lo que buscan es una frase definitoria diría

"Las scripts deben ser ser declaradas dónde correspondan para su correcto funcionamiento", verdad de perogrullo si se quiere, pero verdad al fin

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: input, modificar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:01.