Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: extreme69 en 24 Diciembre 2011, 21:09 pm



Título: HTML Combo + javascript
Publicado por: extreme69 en 24 Diciembre 2011, 21:09 pm
Bueno, la cosa es que al utilizar esta línea funciona perfecto y me concatena un código en base a las opciones de unos combobox, pero cuando la misma línea la pongo dentro de una función aunque sigue funcionando me deja toda la pantalla en blanco y sólo muestra el valor cuando en realidad el valor debería mostrarse en X parte de la página como cuando no está dentro de la función.

document.write(code.concat(val,val2));

¿Ideas de porqué sucede esto?

Se me ocurren un par de opciones para evitar esto, la primera sería utilizar un textbox y mandar el valor del javascript al textbox, y la segunda que sería más prolija sería utilizar un label y mandar el valor del javascript al label.

La pregunta es ¿como? xD

Sepan disculpar, soy nuevo en javascript.


Título: Re: HTML Combo + javascript
Publicado por: extreme69 en 24 Diciembre 2011, 21:47 pm
Listo, lo solucioné así:

<label id="codelbl">code</label>

y en JS:

document.getElementById('codelbl').innerHTML = (code.concat(val,val2));


Título: Re: HTML Combo + javascript
Publicado por: Mr. Crowley en 24 Diciembre 2011, 22:51 pm
Hola, en realidad es demasiado confusa su descripción... o al menos yo no entendí mucho :S

Debe tomar en cuenta que está escribiendo directamente en el documento, es decir, si la función se ejecuta hasta el final, cuando se carga todo el documento HTML, la función imprimirá ese texto al final del documento.

Ejemplo de lo que pienso usted está haciendo:
Código
  1. Mi codigo HTML
  2. Aqui quiero mi codigo javascript
  3. Continuacion de otros codigos HTML
  4. Codigos javascript u otras cosas
  5.  

Si ese es su caso, entonces tiene dos opciones:

1. Crear una capa y por medio de su propiedad innerHTML insertar el código ahí. Es perfecto porque usted posiciona su capa donde quiere y javascript se encarga de colocarle el contenido.

2. Ejecutar el código javascript actual (el que usted está utilizando) en el lugar exacto del documento. Ejemplo:

Código
  1. Mi codigo HTML
  2.    document.write(code.concat(val,val2));
  3. Continuacion de otros codigos HTML
  4. Codigos javascript u otras cosas
  5.  

No se si me expliqué, pero como le digo, no está muy clara su pregunta :S

Saludos!


Título: Re: HTML Combo + javascript
Publicado por: Mr. Crowley en 24 Diciembre 2011, 22:52 pm
Disculpe, desde hace rato tenía la respuesta pero se me había ido la conexión :(
Exactamente eso era lo que tenía que hacer! Se respondió solo jejejeje


Título: Re: HTML Combo + javascript
Publicado por: extreme69 en 25 Diciembre 2011, 05:26 am
Aunque ya lo había solucionado... de todas formas muchas gracias por tu respuesta... y Felíz Navidad, son las 2:24am del 25 aquí y yo nerdeando  :o

Tuve un par de problemas más, pero ahora que comprendí como son las sintaxis en javascript todo se me hizo más fácil.

Está un poco desprolijo, pero esto es lo que estaba intentando hacer (ya lo hice), y como siempre dejo el código por si alguien está recién empezando y tiene los mismos inconvenientes que yo ya pasé:

Código:
	  function refresh(){
 
    var combo1 = videodetails.format
    var val = combo1.options[combo1.selectedIndex].value
    var combo2 = videodetails.resolution
    var val2 = combo2.options[combo2.selectedIndex].value
var combo3 = videodetails.color
    var val3 = combo3.options[combo3.selectedIndex].value
var combo4 = videodetails.scenes
    var val4 = combo4.options[combo4.selectedIndex].value


var code
var fin
code = "Code: ";

document.getElementById('codelbl2').innerHTML = (code.concat(val,val2,val3,val4));




;
 
 
 
 
 
 


    fin = (val.concat(val2,val3,val4));


var precio1
  var precio2

precio1 = "Precio: ";

if (fin == "_mp4_360_red_1"){
  var precio
 precio = "$2";
 document.getElementById('codelbl').innerHTML = (precio1.concat(precio));

 }
 if (fin == "_mp4_480_red_1"){
  var precio
 precio = "$3";
  document.getElementById('codelbl').innerHTML = (precio1.concat(precio));
 }
 if (fin == "_mp4_720_red_1"){
  var precio
 precio = "$4";
  document.getElementById('codelbl').innerHTML = (precio1.concat(precio));
 }
 if (fin == "_mp4_1080_red_1"){
  var precio
 precio = "$5";
  document.getElementById('codelbl').innerHTML = (precio1.concat(precio));
 }
 
 
 
 
 if (fin == "_mp4_360_red_2"){
  var precio
 precio = "$4";
 document.getElementById('codelbl').innerHTML = (precio1.concat(precio));

 }
 if (fin == "_mp4_480_red_2"){
  var precio
 precio = "$6";
  document.getElementById('codelbl').innerHTML = (precio1.concat(precio));
 }
 if (fin == "_mp4_720_red_2"){
  var precio
 precio = "$8";
  document.getElementById('codelbl').innerHTML = (precio1.concat(precio));
 }
 if (fin == "_mp4_1080_red_2"){
  var precio
 precio = "$10";
  document.getElementById('codelbl').innerHTML = (precio1.concat(precio));
 }
 
 
;
}

Me faltan más if y un else y sigo con otra cosa.