Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/10/2011, 11:37
Avatar de Jask
Jask
 
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años, 1 mes
Puntos: 15
Exclamación Función dentro de otra función

Muy buenas, que tal?

Estoy practicando-aprendiendo javascript y me ha surgido un pequeño problema. Os explico. Tengo tres select el cual escojo procesador, monitor y disco duro respectivamente. Lo que luego hago con esto es en su input text correspondiente mostrar el precio del elemento escogido, y para finalizar pulsando en un botón Calcular me muestra el precio de los elementos.

El problema que tengo es que he creado una función para obtener el nombre de cada select:

Código Javascript:
Ver original
  1. function obtieneName(name){
  2.  
  3.             var nombreSelect = document.equipo.name;
  4.  
  5.             return nombreSelect;
  6.  
  7.         }

Para luego en cada función no tener que teclear todo el rato var indice = document.equipo.name.selectedIndex y dejarlo que lo genere dicha función, pero cuando le paso la función obtieneName(name) a otra no me saca el nombre de ese select específico si no del formulario entero. Os dejo el código para que lo vean mejor:

Código Javascript:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2.  
  3.     "http://www.w3.org/TR/html4/loose.dtd">
  4.  
  5. <html lang="es">
  6.  
  7. <head>
  8.  
  9. <!--
  10.  
  11.     2 - Generar un presupuesto de un equipo de computación a partir de tres objetos de tipo SELECT que nos permiten seleccionar:
  12.  
  13.     Procesador (Pentium III - $400, Pentium IV $500).
  14.  
  15.     Monitor (Samsung 14' - $250, Samsung 15' - $350, Samsung 17' - $550)
  16.  
  17.     Disco Duro(80 Gb - $300, 240 Gb - $440, 800 Gb - $500)
  18.  
  19.     Para cada característica indicamos string a mostrar (Ej. Pentium III) y el valor asociado a dicho string (Ej. 400).
  20.  
  21.     Al presionar un botón "Calcular" mostrar el presupuesto en un objeto de tipo TEXT.  
  22.  
  23. -->
  24.  
  25.     <title>Javascript</title>
  26.  
  27.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  28.  
  29.    
  30.  
  31.     <style type="text/css">
  32.  
  33.         div{
  34.  
  35.             margin:15px;
  36.  
  37.         }
  38.  
  39.        
  40.  
  41.         hr{
  42.  
  43.             margin:25px 0;
  44.  
  45.         }
  46.  
  47.     </style>
  48.  
  49.    
  50.  
  51.     <script type="text/javascript">
  52.  
  53.        
  54.  
  55.         function obtieneName(name){
  56.  
  57.             var nombreSelect = document.equipo.name;
  58.  
  59.             return nombreSelect;
  60.  
  61.         }
  62.  
  63.        
  64.  
  65.         function muestraPrecioProce(name){
  66.  
  67.             alert(obtieneName(name));
  68.  
  69.         }
  70.  
  71.        
  72.  
  73.         function muestraPrecioMonitor(){
  74.  
  75.         }
  76.  
  77.        
  78.  
  79.         function muestraPrecioDisco(){
  80.  
  81.         }
  82.  
  83.        
  84.  
  85.         function precioTotal(){
  86.  
  87.         }
  88.  
  89.     </script>
  90.  
  91.    
  92.  
  93. </head>
  94.  
  95. <body>
  96.  
  97.     <h1>Arma tu equipo</h1>
  98.  
  99.     <form name="equipo" method="post">
  100.  
  101.         <div>
  102.  
  103.             Procesadores
  104.  
  105.             <select name="procesador" onChange="muestraPrecioProce(this.name)">
  106.  
  107.                 <option value="0" selected="selected">Escoge un Procesador</option>
  108.  
  109.                 <option value="400">Pentium III</option>
  110.  
  111.                 <option value="500">Pentium IV</option>
  112.  
  113.             </select>
  114.  
  115.         </div>
  116.  
  117.         <div>
  118.  
  119.             Monitores
  120.  
  121.             <select name="monitor" onChange="">
  122.  
  123.                 <option value="0" selected="selected">Escoge un Monitor</option>
  124.  
  125.                 <option value="250">Samsung 14'</option>
  126.  
  127.                 <option value="350">Samsung 15'</option>
  128.  
  129.                 <option value="550">Samsung 17'</option>
  130.  
  131.             </select>
  132.  
  133.         </div>
  134.  
  135.         <div>
  136.  
  137.             Disco Duro
  138.  
  139.             <select name="Disco Duro" onChange="">
  140.  
  141.                 <option value="0" selected="selected">Escoge un Disco Duro</option>
  142.  
  143.                 <option value="300">80 Gb</option>
  144.  
  145.                 <option value="440">240 Gb</option>
  146.  
  147.                 <option value="500">440 Gb</option>
  148.  
  149.             </select>
  150.  
  151.         </div>
  152.  
  153.         <br>
  154.  
  155.         <input type="button" id="calularPrecio" value="Calcular">
  156.  
  157.     </form>
  158.  
  159.     <hr></hr>
  160.  
  161.     <p>Procesador escogido: <b><span id="procesadorSeleccionado">-procesador-</span></b>. Precio: <input type="text" name="precioProcesador" id="precioProce" readonly="readonly" size="10"> € </p>
  162.  
  163.     <p>Monitor escogido: <b><span id="monitorSeleccionado">-monitor-</span></b>. Precio: <input type="text" name="precioMonitor" id="precioMon" readonly="readonly" size="10"> € </p>
  164.  
  165.     <p>Disco Duro escogido: <b><span id="discoSeleccionado">-disco-</span></b>. Precio: <input type="text" name="precioDisco" id="precioDis" readonly="readonly" size="10"> € </p>
  166.  
  167.     <p><b>Importe Total</b> <input type="text" name="precioTotal" id="total" readonly="readonly" size="10"> € </p>
  168.  
  169.    
  170.  
  171. </body>
  172.  
  173. </html>

No está terminado la parte de JS pero desearía que me pudieran orientar al respecto de pasar parémtros por funciones y estas utilizarlas dentro de otra función, ¿me entienden?

Muchas gracias
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?