Foros del Web » Programando para Internet » Javascript »

javascript dentro del value

Estas en el tema de javascript dentro del value en el foro de Javascript en Foros del Web. Hola, ¿es posible llamar a una funion dentro del value de un <option>?En el select tengo esto onclick="this.value" y en el value de los options ...
  #1 (permalink)  
Antiguo 11/07/2008, 05:59
Avatar de wolvelopez  
Fecha de Ingreso: junio-2008
Mensajes: 86
Antigüedad: 15 años, 10 meses
Puntos: 0
javascript dentro del value

Hola,
¿es posible llamar a una funion dentro del value de un <option>?En el select tengo esto onclick="this.value" y en el value de los options tengo una llamada a una funcion javascript.

Todo esto viene porque Internet explorer no adminte el evento onclick en los option.

EJEMPLO:
<select name="caja" onclick="this.value">
<option onclick="mostrar('','0','caja');">Sin seleccion</option>
<?php
while ($row = mysql_fetch_array($cajas))
{
$precioIva = $row[product_price]*1.16;
$precioIva = round($precioIva*100)/100;
?><option value="javascript:mostrar('<?php echo $row[product_sku];?>','<?php echo $precioIva?>','caja','<?php echo $row[product_desc] ?>');">
<?php echo "$row[product_s_desc] - $precioIva"; ?>
</option>
<?php
}
?>
</select>

¿Me podeis guiar?, es que ando dando vueltas y no veo solucion.

Un saludo y gracias desde ya.
  #2 (permalink)  
Antiguo 11/07/2008, 06:24
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: javascript dentro del value

No tiene ningún sentido ni tener onclick="this.value" ni tener una función en el value de los options.

Lo que podrías hacer es:
1. Guardar los datos de los productos en un array independiente.

2. En el option meter sólo el id (sku) y en el select poner la llamada a mostrar en el onchange.

Algo de este tipo o parecido:

Código PHP:
<script>
productos = [];
</script>
<select name="caja" id="caja" onchange="mostrarProducto()">
    <option value="-1">Sin seleccion</option>
<?php
while ($row mysql_fetch_array($cajas)) {
    
$precioIva $row[product_price]*1.16;
    
$precioIva round($precioIva*100)/100;
?>
    <option value="<?php echo $row[product_sku];?>"><?php echo "$row[product_s_desc] - $precioIva"?></option>
<script>
productos['<?php echo $row[product_sku];?>'] = {
    sku: '<?php echo $row[product_sku];?>', 
    precioIva: '<?php echo $precioIva?>',
    desc: '<?php echo $row[product_desc?>'
};
</script><?php ?>
</select>
La función mostrarProducto() podría llamar a tu mostrar() (aunque sería mejor modificar tu función mostrar directamente):
Código:
function mostrarProducto() {
    var seleccionado = document.getElementById("caja").options[document.getElementById("caja").selectedIndex].value;
    mostrar(productos[seleccionado].sku,productos[seleccionado].precioIva,'caja',productos[seleccionado].desc);
}
  #3 (permalink)  
Antiguo 11/07/2008, 08:28
Avatar de wolvelopez  
Fecha de Ingreso: junio-2008
Mensajes: 86
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: javascript dentro del value

Ok, muchas gracias venkman. Llevas razon, visto así no tenia senido.
  #4 (permalink)  
Antiguo 11/07/2008, 09:35
Avatar de wolvelopez  
Fecha de Ingreso: junio-2008
Mensajes: 86
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: javascript dentro del value

Un cosilla falla, y no entiendo porque.
En la funcion mostrarProducto(), la parte productos[seleccionado].sku, no trae valores y sim embargo el value del sku si que le llega.
¿Sabes porqué puede pasar?
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 12:55.