Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Problema con formulario y suma del Iva

Estas en el tema de Problema con formulario y suma del Iva en el foro de Javascript en Foros del Web. Hola, ante todo quería presentarme ya que soy nuevo x aquí. Tengo algo de experiencia en html y css, pero en javascript soy un novato ...
  #1 (permalink)  
Antiguo 02/01/2013, 08:31
 
Fecha de Ingreso: enero-2013
Mensajes: 5
Antigüedad: 11 años, 3 meses
Puntos: 0
Problema con formulario y suma del Iva

Hola, ante todo quería presentarme ya que soy nuevo x aquí. Tengo algo de experiencia en html y css, pero en javascript soy un novato y no tengo mucha idea, por eso necesito de vuestra ayuda, resulta que tengo un pequeño formulario con unos input radio y un input checkbox, en eso no tengo problema, el problema es que no se añadir la funcion iva para que cuando se seleccione se sume el iva o sino se selecciona el resultado quede igual, esta es la función que uso para sumar los valores:

<script >
function Suma(formulario){
total=0;
nombre="";
for(i=0;i<formulario.elements.length;i++){
if(formulario.elements[i].type=="radio" && nombre!=formulario.elements[i].name){
nombre=formulario.elements[i].name;
grupo=document.getElementsByName(nombre);
for(j=0;j<grupo.length;j++){
if(grupo[j].checked){
total+=parseInt(grupo[j].value);
}
}
}else if (formulario.elements[i].type=="checkbox"){
if(formulario.elements[i].checked){
total+=parseInt(formulario.elements[i].value);
}
}

}
document.form1.total.value = total;
}
</script >

<form method="post" name="form1">
<p >
Estado</p >
<p >
&nbsp;&nbsp; &nbsp; Nuevo<input name="grupo_radio" id="radio_1" onclick="Suma(this.form)" type="radio" value="100" /></p >
<p >
&nbsp;&nbsp; &nbsp; Usado<input name="grupo_radio" id="radio_2" onclick="Suma(this.form)" type="radio" value="50" /></p >
<p >
Marca</p >
<p >
&nbsp;&nbsp; &nbsp; Coche 1<input name="grupo_radio2" id="radio_3" onclick="Suma(this.form)" type="radio" value="300" /></p >
<p >
&nbsp;&nbsp; &nbsp; Coche 2<input name="grupo_radio2" id="radio_4" onclick="Suma(this.form)" type="radio" value="25" /></p >
<p >
&nbsp;&nbsp; &nbsp; Coche 3<input name="grupo_radio2" id="radio_5" onclick="Suma(this.form)" type="radio" value="200" /></p >
<p >
<strong >Extra</strong ></p >
<p >
&nbsp;&nbsp; &nbsp;Con Iva <input name="fac_iva" id="chec_1" onclick="Suma(this.form)" type="checkbox" value="2.10" /></p >
<p >
&nbsp;&nbsp; &nbsp;Sin Iva <input name="chec_2" id="chec_2" type="checkbox"/></p >
<p >
&nbsp;</p >
<p >
Total<input name="total" type="text" value="0" /></p >
</form >

Y esta otra seria la que me gustaria añadir para sumar el iva:

<script language = "Javascript">

function ivatotal() {
var subtotal = event.srcElement.value
var iva = Math.round(subtotal*.21*100)/100
var total = Math.round(subtotal*1.21*100)/100
document.form1.fac_iva.value=iva
document.form1.total.value=total
}
</script>

Espero que me entendáis lo que quiero decir solo seria meter en la misma función la suma y la multiplicación del iva si se selecciona la casilla iva y sino quedar igual
  #2 (permalink)  
Antiguo 02/01/2013, 16:22
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema con formulario y suma del Iva

a ver si te ayuda en algo este código
Cita:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function Suma1(isChecked, valor){
if (isChecked) {
siniva1 = (parseFloat(document.sumar1.totalsiniva1.value) + parseFloat(valor)).toFixed(2);
} else {
siniva1 = (parseFloat(document.sumar1.totalsiniva1.value) - parseFloat(valor)).toFixed(2);
}
document.sumar1.totalsiniva1.value = siniva1;
document.sumar1.total1.value = (parseFloat(document.sumar1.totalactual.value) + parseFloat(siniva1 * 2.10)).toFixed(2);
}



function Suma2(isChecked, valor){
if (isChecked) {
siniva2 = (parseFloat(document.sumar2.totalsiniva2.value) + parseFloat(valor)).toFixed(2);
} else {
siniva2 = (parseFloat(document.sumar2.totalsiniva2.value) - parseFloat(valor)).toFixed(2);
}
document.sumar2.totalsiniva2.value = siniva2;
document.sumar2.total2.value = parseFloat(siniva2 * 2.10).toFixed(2);
}

</script>
</head>
<body>
<table border="1">
<tr>
<td>
<form name="sumar1" method="POST">
<p><b><font color="#999999">Importe Actual con IVA 21%</font></b> <input type="text" value="200.00" id="totalactual" name="totalactual" disabled /> &euro;</p>
<p>Televisi&oacute;n LG <input type="checkbox" value="2000.00" id="Prod1" name="Prod1" onClick="Suma1(this.checked,this.value)" />2000,00 &euro;</p>
<p>Televisi&oacute;n Sony <input type="checkbox" value="1505.99" id="Prod2" name="Prod2" onClick="Suma1(this.checked,this.value)" />1505,99 &euro;</p>
<p>Televisi&oacute;n Panasonic <input type="checkbox" value="1151.99" id="Prod3" name="Prod3" onClick="Suma1(this.checked,this.value)" />1151,99 &euro;</p>
<input type="hidden" value="0.00" id="totalsiniva1" name="totalsiniva1" />
<p><b><font color="#999999">Importe Total con IVA 21%</font></b> <input id="pago" class="resultado" type="text" id="total1" name="total1" value="200" disabled /> &euro;</p>
</form>
</td>
</tr>
</table>

<br /><br />

<table border="1">
<tr>
<td>
<form name="sumar2" method="POST">
<p>Consola X-Box <input type="checkbox" value="199.99" id="Prod4" name="Prod4" onClick="Suma2(this.checked,this.value)" />199,99 &euro;</p>
<p>Consola PlayStation <input type="checkbox" value="176.50" id="Prod5" name="Prod5" onClick="Suma2(this.checked,this.value)" />176,50 &euro;</p>
<p>Consola Wii <input type="checkbox" value="195.99" id="Prod6" name="Prod6" onClick="Suma2(this.checked,this.value)" />195,99 &euro;</p>
<input type="hidden" value="0.00" id="totalsiniva2" name="totalsiniva2" />
<p><b><font color="#999999">Importe Total con IVA 21%</font></b> <input id="pago" class="resultado" type="text" id="total2" name="total2" value="0" disabled /> &euro;</p>
</form>
</td>
</tr>
</table>
</body>
</html>
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 03/01/2013, 05:29
 
Fecha de Ingreso: enero-2013
Mensajes: 5
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Problema con formulario y suma del Iva

Hola Isabel lo primero queria darte las gracias por contestarme tan pronto, quiza sea xq no se mucho pero al ver tu ejemplo me he dao cuenta de que al poner el iva te lo multiplica x 2, me imagino que sera x el value? o porque he puesto algo mal, veras me gustaria poner algo de este tipo:

<html>
<head>
</head>
<body>
<script language = "Javascript">

<!--SUMA DE RADIOS Y CHECKBOX-->

<script >
function Suma(formulario){
total=0;
nombre="";
for(i=0;i<formulario.elements.length;i++){
if(formulario.elements[i].type=="radio" && nombre!=formulario.elements[i].name){
nombre=formulario.elements[i].name;
grupo=document.getElementsByName(nombre);
for(j=0;j<grupo.length;j++){
if(grupo[j].checked){
total+=parseInt(grupo[j].value);
}
}
}else if (formulario.elements[i].type=="checkbox"){
if(formulario.elements[i].checked){
total+=parseInt(formulario.elements[i].value);
}
}

}
document.form1.total.value = total;
}
</script >

<form method="post" name="form1">
<p >
Marca</p >
<select onclick="Suma(el.form)">

<option value="">-Seleccione un Televisor-</option>
<option value="300">LG</option>
<option value="600">Sony</option>
<option value="570">Samsung</option>
</select>

<p >
Estado</p >

<p >
&nbsp;&nbsp; &nbsp; Nuevo<input name="grupo_radio" id="radio_1" onclick="Suma(this.form)" type="radio" value="100" /></p >
<p >
&nbsp;&nbsp; &nbsp; Usado<input name="grupo_radio" id="radio_2" onclick="Suma(this.form)" type="radio" value="50" /></p >
<p >
Cantidad</p >
<p >
&nbsp;&nbsp; &nbsp; Numero <input type="text" size="2" maxlength="1" name="cantidad" value="1"/></p >

<p >
<strong >Extra</strong ></p >
<p >
&nbsp;&nbsp; &nbsp;Con Iva<input name="fac_iva" id="chec_1" onclick="Suma(this.form)" type="checkbox" value="2.10" /></p >
<p >
&nbsp;&nbsp; &nbsp; Sin Iva <input name="chec_2" id="chec_2" type="checkbox"/></p >
<p >
&nbsp;</p >
<p >
Total<input name="total" type="text" value="0" /></p >
</form >
</body>
</html>

Necesito que me coja el valor de un select, de los input radios y input checkbox y de un input text q según ponga mas de 1 me sume 5 euros x ejemplo, es decir:
1=0
2 productos + 5 euros x ejemplo
3 productos +10 euros
y claro q me sume o no el iva depende si lo selecciono o no, si me dices como salir de esta te lo agradecería xq llevo un mes dando vueltas, o x lo menos guiarme un poco no se...
  #4 (permalink)  
Antiguo 03/01/2013, 17:29
 
Fecha de Ingreso: enero-2013
Mensajes: 5
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Problema con formulario y suma del Iva

Por favor me podéis ayudar
  #5 (permalink)  
Antiguo 03/01/2013, 17:53
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: Problema con formulario y suma del Iva

te recomendaria utilizar id's para todos los elementos que se utilizaran para los calculos y accesar a sus valores con document.getElementById().value

los checkbox del iva deben ser radios puesto que a como esta podrias tener los dos al mismo tiempo(cosa ilogica) o es sin iva o es con iva

con una funcion general deberia bastar , dicha funcion en evento de cambios (onchange del select y radios, onkeyup del textbox ,etc)
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”

Etiquetas: formulario, funcion, html, input, iva, suma
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 02:13.