Foros del Web » Programando para Internet » Javascript »

DOs funciones para un mismo input split

Estas en el tema de DOs funciones para un mismo input split en el foro de Javascript en Foros del Web. Hola Bueno mi duda es la siguiente. Lo qu equiero hacer es varios grupos de input tye="radio" en el que cada grupo de input es ...
  #1 (permalink)  
Antiguo 06/11/2009, 06:47
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años, 1 mes
Puntos: 11
DOs funciones para un mismo input split

Hola

Bueno mi duda es la siguiente. Lo qu equiero hacer es varios grupos de input tye="radio" en el que cada grupo de input es un evento de una empresa. Os pongo un ejemplo:
primer grupo segundo grupo
---------------- ----------------
-Reparar luna limpiar lunas
-Cambiar tubo de escape limpiar tapiceria

Entonces quiero que un cliente pueda darle a ver precio y ver duracion, es decir, que si yo pincho seleccionando reparar luna y limpiar tapiceria ver precio me ponga 150 euros y si es ver duracion me ponga 2 horas, y si por ejemplo pido que quiero cambiar el tubo de escape y limpiar tapiceria, lo que cuesta y el tiempo que lleva

Hacerlo mostrando una sola es facil, ya que con la opcion <input type="radio" value="elprecio"> pues recogeria el precio de cada evento, pero mi duda es como hacerlo para dos, ya que no puedo asignar dos values a un mismmo input.

Gracioas

Última edición por Gothgauss; 06/11/2009 a las 12:30
  #2 (permalink)  
Antiguo 06/11/2009, 07:09
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: DOs funciones para un mismo input

Hola GothGauss,

Puedes duplicar cada servicio (dos para limpieza de tapicería, dos para limpiar lunas...) y uno de cada par lo ocultas y cuando se haga click en uno automáticamente se haga click en el otro (con un fireEvent por ejemplo)
cuando consulten precio que muestren los values de unos y cuando consulten tiempo los values de sus correspondientes y ocultos servicios.

si tienes dudas nos cuentas.
se me ocurre otra forma, pero esta puede ser la más sencilla, no?

salu2
  #3 (permalink)  
Antiguo 06/11/2009, 08:11
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: DOs funciones para un mismo input

Emparejados con los radios de cada servicio tendria campos ocultos con el precio y el tiempo, asociado al boton ver precio lanzaria una funcion que vea que radios tengo activados y si lo estan sume el precio, al final tendremos el presupuesto de todos los servicios solicitados, con el tiempo lo mismo pero ojo que si no son horas completas la cosa se puede complicar.... (1,30 + 1,30 son 3 o 2,60?).

Quim
  #4 (permalink)  
Antiguo 06/11/2009, 08:39
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años, 1 mes
Puntos: 11
Respuesta: DOs funciones para un mismo input

Lod e sumar tiempos no es problema porque lo hare en suma de minutos y al final uqe calcule las horas.

Lo del fireevent lo he mirado un poco y creoq ue tengo que poner lo siguiente:
<input type="hidden" name="presupuestos" onmouseover="this.fireEvent(Calculo de presupuesto)">
<input type="radio" name="presupuestos" onmouseover="this.fireEvent(calculo de tiempo)" />

Aunque le veo problemas. El primero: el primer input es type hidden y esl segundo es tipo radio, entonces mientras del segundo puedo poner 50 apartados con distitnot value, en el primero solo puedo poner uno.

Una solucion que habia pensado yo seria en poner en el value el precio y el presupuesto separado por algun caracter especial, como un punto o asi y luego coger un afuncion que separe lo de la izq del punto o lo de la derecha, segun el caso, pero no se si existe tal funcion en javascript
  #5 (permalink)  
Antiguo 06/11/2009, 08:57
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: DOs funciones para un mismo input

Hola

Con respento a FireEvent solo funciona en IE, el equivalente W3C es dispatchEvent

La función para separar cadenas es split()

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #6 (permalink)  
Antiguo 06/11/2009, 09:32
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años, 1 mes
Puntos: 11
Respuesta: DOs funciones para un mismo input

Gracias

QUe la fuerza me acompañe
  #7 (permalink)  
Antiguo 06/11/2009, 12:34
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años, 1 mes
Puntos: 11
Respuesta: DOs funciones para un mismo input split

Estoy intentando usar la funcion split pero no me devuelve resultado.

En los values de cada input pongo value="x-y" segun sean los valores del precio y tiempo, por ejemplo el parabrisas llevaria un value="150-60", siendo 150 euros y 60 minutos de tiempo

Ahora en el codigo javascript intento serparar dicho value por la funcion split, pero no me devuelve ningun valor:
Código HTML:
function sumarprecios() {
   var suma = 0;
   var recogidocv = parseInt(valuechecked(form.vv.split("-")));
	document.getElementById('algo').innerHTML = recogidocv[0] ;

   }
Alguna idea de porque sucede esto?
  #8 (permalink)  
Antiguo 06/11/2009, 12:41
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: DOs funciones para un mismo input split

split es un metodo heredado de los string, no del elemento. tienes que leer la propiedad value y seguido invocas el metodo split. entiendase que split devuelve un array.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #9 (permalink)  
Antiguo 06/11/2009, 12:45
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años, 1 mes
Puntos: 11
Respuesta: DOs funciones para un mismo input split

Vale, ya vi el error, y es que puse

parseInt


por lo que me devolvia todo lo numerico, y claro, asi no habia - que separar y el resultado devuelto era nulo
  #10 (permalink)  
Antiguo 09/11/2009, 02:36
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: DOs funciones para un mismo input split

A ver que os parece esta solución....

Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
//Matriz donde se guarga el catalogo dse servicios
var mservicios=new Array();
var totalpressupost=0;
var totaltemps=0;

//Matriz donde se guarda las características de un servicio
var mservicio=new Array(3);
mservicio[0]="Servicio 1";
mservicio[1]=25.18;
mservicio[2]=33;
mservicios[0]=mservicio;

var mservicio=new Array(3);
mservicio[0]="Servicio 2";
mservicio[1]=18;
mservicio[2]=23;
mservicios[1]=mservicio;

var mservicio=new Array(3);
mservicio[0]="Servicio 3";
mservicio[1]=29;
mservicio[2]=13;
mservicios[2]=mservicio;

var mservicio=new Array(3);
mservicio[0]="Servicio 4";
mservicio[1]=50;
mservicio[2]=60;
mservicios[3]=mservicio;

//Asi tantos servicios como se quiera

function fcataleg(){
	var codiHtml="<table width='80%' border='1' cellspacing='0' cellpadding='0'>";
	codiHtml+="<tr><td><strong>Servicio</strong></td><td align='right'><strong>Precio</strong></td><td align='right'><strong>Tiempo</strong></td><td>&nbsp;</td><tr>";
	for(i=0;i<mservicios.length;i++){
		codiHtml+="<tr>"
		          + "<td>" + mservicios[i][0] + "</td>"
				  + "<td align='right'>" + mservicios[i][1] + "</td>"
				  + "<td align='right'>" + mservicios[i][2] + "</td>"
				  + "<td align='center'><input name=serv_'" + i + "' type='checkbox' id='serv_" + i + "' value='' onChange='fpressupost()' ></td>"
				  + "</tr>";
	}
	codiHtml+="</table>";
	document.getElementById("cataleg").innerHTML=codiHtml;
}
function fpressupost(){
    totalpressupost=0;
	totaltemps=0;
	for(i=0;i<mservicios.length;i++){
		if(document.getElementById("serv_"+i).checked){
		     totalpressupost+=mservicios[i][1];
			 totaltemps+=mservicios[i][2];
		}
	}
	document.getElementById("pressupost").innerHTML="Total " + totalpressupost + " &euro; (" + totaltemps + " minutos)";

}
</script>

</head>
<body onLoad="fcataleg()">
<span id="cataleg"></span><br>
<br>
<span id="pressupost">Total 0 &euro; (0 minutos)</span>
</body>
</html> 
Quim
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 09:33.