Espero que me podáis ayudar en esto, Es que tengo un formulario que sirve para calcular un presupuesto al seleccionar un servicio y calcule el presupuesto. Pero el problema esta es que cuando hago varias selección de un mismo servicio...no me funciona y no me hace el calculo pero si hago una selección de cada servicio si que me funciona y lo que me interesa es que funciones también cuando selecciones varios servicios y no entiendo el porque cuando solo hago una sola selección si me funciona.
Código Javascript:
Ver original
<script language="JavaScript" type="text/javascript"> var called=false; //para asegurarse de que la función calcular () se llama var T_Price=0; var pc_flag; //pcsobremesa bandera para hacer el seguimiento de las elecciones var pc_print=""; var re_flag; //bandera para redes var re_print; var po_flag; //bandera para portatiles var po_print; var rep_flag; //bandera para reparación var rep_print; var mac_flag; //bandera para MAC var mac_print; var software_flag; //bandera para software var software_print; function compute(form){ called=true; if (form.pcsobremesa[0].selectedmultiple){ pc_print= "None [0€]"; pc_flag=0; } if (form.pcsobremesa[1].selectedmultiple){ pc_flag =00; pc_print="PC-01 Diagnostico y presupuesto [00€]"; } else if (form.pcsobremesa[2].selectedmultiple){ pc_flag =15; pc_print="PC-02 Formatear Disco Duro[15€]"; } else if (form.pcsobremesa[3].selectedmultiple){ pc_flag =45; pc_print="PC-03 Instalación de Sistema Operativo[45€]"; } else if (form.pcsobremesa[4].selectedmultiple){ pc_flag =20; pc_print="PC-04 Limpieza de Virus[20€]"; } else if (form.pcsobremesa[5].selectedmultiple){ pc_flag =15; pc_print="PC-05 Intalación antivirus[15€]"; } else if (form.pcsobremesa[6].selectedmultiple){ pc_flag =30; pc_print="PC-06 Limpieza PC[30€]"; } else if (form.pcsobremesa[7].selectedmultiple){ pc_flag =15; pc_print="PC-07 Recuperación del sistema[15€]"; } else if (form.pcsobremesa[8].selectedmultiple){ pc_flag =10; pc_print="PC-08 Pendrive[10€]"; } else if (form.pcsobremesa[9].selectedmultiple){ pc_flag =20; pc_print="PC-09 Recuperación de datos[20€]"; } else if (form.pcsobremesa[10].selectedmultiple){ pc_flag =30; pc_print="PC-10 Disco duro dañado [30€]"; } else if (form.pcsobremesa[11].selectedmultiple){ pc_flag =20; pc_print="PC-11 Instalación Hardware[20€]"; } else if (form.pcsobremesa[12].selectedmultiple){ pc_flag =10; pc_print="PC-12 Asesoramiento[10€]"; } else if (form.pcsobremesa[13].selectedmultiple){ pc_flag =30; pc_print="PC-13 Copia de Seguridad[30€]"; } else if (form.pcsobremesa[14].selectedmultiple){ pc_flag =10; pc_print="PC-14 DVD-CD dañado[10€]"; } else if (form.pcsobremesa[15].selectedmultiple){ pc_flag =20; pc_print="PC-15 Correo electrónico[20€]"; } else if (form.pcsobremesa[16].selectedmultiple){ pc_flag =15; pc_print="PC-16 Instalación periféricos[15€]"; } else if (form.pcsobremesa[17].selectedmultiple){ pc_flag =20; pc_print="PC-17 Software descarga[20€]"; } else if (form.pcsobremesa[18].selectedmultiple){ pc_flag =20; pc_print="PC-18 Instalación Messenger, Skype, facebook, etc[20€]"; } else if (form.pcsobremesa[19].selectedmultiple){ pc_flag =20; pc_print="PC-19 Fuente de Alimentación[20€]"; } else if (form.pcsobremesa[20].selectedmultiple){ pc_flag =35; pc_print="PC-20 Montaje e instalación de Ordenador[35€]"; } else if (form.pcsobremesa[21].selectedmultiple){ pc_flag =30; pc_print="PC-21 Ampliación PC[30€]"; } else if (form.pcsobremesa[22].selectedmultiple){ pc_flag =25; pc_print="PC-22 Kit de refrigeración[25€]"; } else if (form.pcsobremesa[23].selectedmultiple){ pc_flag =15; pc_print="PC-23 Instalación software[15€]"; } //-------redes---------- if (form.redes[0].selectedmultiple){ re_flag=0; re_print="None [€0]"; } if (form.redes[1].selectedmultiple){ re_flag=20; re_print="RE-01 Instalación y configuración de ADSL/WIFI[20€]"; } if (form.redes[2].selectedmultiple){ re_flag=25; re_print="RE-02 Configuración Router[25€]"; } if (form.redes[3].selectedmultiple){ re_flag=35; re_print="RE-03 Seguridad WIFI [35€]"; } if (form.redes[4].selectedmultiple){ re_flag=35; re_print="RE-04 Instalación de componentes de red [35€]"; } if (form.redes[5].selectedmultiple){ re_flag=15; re_print="RE-05 Configuración e instalación de red domestica[15€]"; } if (form.redes[6].selectedmultiple){ re_flag=50; re_print="RE-06 Ampliación de cobertura WIFI[50€]"; } if (form.redes[7].selectedmultiple){ re_flag=20; re_print="RE-07 Adaptador o tarjeta WIFI[20€]"; } //-------portatiles----------- if (form.portatiles[0].selectedmultiple){ po_flag=0; po_print="None [€0]"; } if (form.portatiles[1].selectedmultiple){ po_flag=00; po_print="PO-01 Diagnostico y presupuesto[00€]"; } if (form.portatiles[2].selectedmultiple){ po_flag=100; po_print="PO-02Reparación Pantalla[100€]"; } if (form.portatiles[3].selectedmultiple){ po_flag=45; po_print="PO-03 Reparación o sustitución de batería[45€]"; } if (form.portatiles[4].selectedmultiple){ po_flag=57; po_print="PO-04 Reparación o sustitución de teclado[57€]"; } if (form.portatiles[5].selectedmultiple){ po_flag=30; po_print="PO-05 Reparación o sustitución DVD[30€]"; } if (form.portatiles[6].selectedmultiple){ po_flag=90; po_print="PO-06 Reparación Placa Base[90€]"; } if (form.portatiles[7].selectedmultiple){ po_flag=56; po_print="PO-07 Reparación Disco Duro[56€]"; } if (form.portatiles[8].selectedmultiple){ po_flag=55; po_print="PO-08 Formatear y reinstalar Sistema Operativo[55€]"; } if (form.portatiles[9].selectedmultiple){ po_flag=25; po_print="PO-09 Ampliación Memoria[25€]"; } if (form.portatiles[10].selectedmultiple){ po_flag=20; po_print="PO-10 Limpieza virus[20€]"; } if (form.portatiles[11].selectedmultiple){ po_flag=55; po_print="PO-11 Ampliación de Disco Duro[55€]"; } if (form.portatiles[12].selectedmultiple){ po_flag=30; po_print="PO-12 Limpieza Portátil[30€]"; } if (form.portatiles[13].selectedmultiple){ po_flag=35; po_print="PO-13 Ventilador Portátil[35€]"; } if (form.portatiles[14].selectedmultiple){ po_flag=70; po_print="PO-14 Reparación GPU Video[70€]"; } if (form.portatiles[15].selectedmultiple){ po_flag=15; po_print="PO-15 Instalación software[15€]"; } //-------reparación------- if (form.reparación[0].selectedmultiple){ rep_flag=0; rep_print="None [0€]"; } if (form.reparación[1].selectedmultiple){ rep_flag=00; rep_print="ZONA-1 Madrid Centro Hasta 20Km [00€]"; } if (form.reparación[2].selectedmultiple){ rep_flag=15; rep_print="ZONA-2 Extrarradio hasta 20 Km[15€]"; } if (form.reparación[3].selectedmultiple){ rep_flag=20; rep_print="ZONA-3 Extrarradio hasta 30Km[20€]"; } if (form.reparación[4].selectedmultiple){ rep_flag=30; rep_print="ZONA-4 Provincias colindantes hasta 50 Km[30€]"; } //-------MAC------- if (form.MAC[0].selectedmultiple){ mac_flag=0; mac_print="None [€0]"; } if (form.MAC[1].selectedmultiple){ mac_flag=00; mac_print="MA-01 Diagnostico y presupuesto[00€]"; } if (form.MAC[2].selectedmultiple){ mac_flag=45; mac_print="MA-02 Instalación de Sistema Operativo[45€]"; } if (form.MAC[3].selectedmultiple){ mac_flag=15; mac_print="MA-03 Instalación software[15€]"; } if (form.MAC[4].selectedmultiple){ mac_flag=30; mac_print="MA-04 Copia de Seguridad[30€]"; } if (form.MAC[5].selectedmultiple){ mac_flag=30; mac_print="MA-05 Instalación Windows[30€]"; } if (form.MAC[6].selectedmultiple){ mac_flag=20; mac_print="MA-06 Reemplazo de piezas defectuosas[20€]"; } if (form.MAC[7].selectedmultiple){ mac_flag=10; mac_print="MA-07 Asesoramiento[10€]"; } T_Price=pc_flag+re_flag+po_flag+rep_flag+mac_flag form.T_Price.value=" € "+ T_Price; } function print(form){ if(!called){ compute(form); } text = ("<HEAD><TITLE>'On-line Calcular presupuesto'</TITLE></HEAD>"); text = (text +"<BODY BGCOLOR = '#C0C0C0' ><CENTER><B><FONT SIZE = 4><FONT COLOR=BLUE>Novtiz<br>servicio informatico</FONT></FONT></B>"); text= (text +"</CENTER>"); text=(text+"<hr>"); text=(text+"<TABLE BORDER =0><TR VALIGN=Top><TD VALIGN=Top>"); text=(text+"<B><BR><BR><BR> <BR><BR>"); text=(text+" <BR><BR><BR><BR><BR><BR>"); text=(text+"</B></TD><TD>") text=(text+"<B>"+ pc_print+"<BR>"+re_print+"<BR>"+ rep_print+"<BR>"); text=(text+"<BR>"+po_print+"<BR>"+ mac_print+"<BR>"); text=(text+"<TD></TR></TABLE><hr>"); text=(text+"<B><FONT COLOR=RED>Coste total:</FONT>"+"       € "+T_Price); text=(text+"<form><FONT SIZE=-1><FONT COLOR=GREEN>Para imprimir, seleccione Archivo e Imprimir.</FONT></FONT>"); text=(text+"<br><form><FONT SIZE=-1><FONT COLOR=RED>Este presupuesto no incluye gastos de materiales.</FONT></FONT></br>"); text=(text+" <input type=button value=Close onClick=window.close()>"+"</form></body></html>"); msgWindow=window.open("","displayWindow","toolbar=no,location=no,top=8,left=90,width=375,height=400,directories=no,status=no,scrollbars=no,resize=no,menubar=yes") msgWindow.document.write(text) msgWindow.document.close() } </script>