Ayuda con 2 scripts
Hola experto, sin querer ser pesado, a ver si me puedes echar una manita con un par de scripts que me están dando problemas. El primero es el siguiente:
<html>
<head>
<title></title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<SCRIPT LANGUAGE=JavaScript>
function Sumar() {
var val1;
var val2;
var val3;
val1 = (! ParseFloat(document.factura.sum1.value))?0:parseFloat(document.factura.sum1.value);
val2 = (! ParseFloat(document.factura.sum2.value))?0:parseFloat(document.factura.sum2.value);
val3 = (! ParseFloat(document.factura.sum3.value))?0:parseFloat(document.factura.sum3.value);
document.factura.tot.value = val1 * (val2 * 1.38 + val3 * 1.1);
}
</SCRIPT>
<form name=factura>
<tr><td><input type=text value="Item 1"></td>
<td><input name=sum1 size=5 onChange=Sumar()></td>
</tr>
<tr><td><input type=text value="Item 2"></td>
<td><input name=sum2 size=5 onChange=Sumar()></td>
</tr>
<tr><td><input type=text value="Item 3"></td>
<td><input name=sum3 size=5 onChange=Sumar()></td>
</tr>
<tr><td align=right><input type=button value="Total:" onClick=Sumar()></td>
<td><input name=tot size=6></td>
</tr>
</form>
</body>
</html>
Todo funciona bien, pero dependiendo de la multiplicación, hay veces que el resultado es, por ej., 12,59999999999 ¿Cómo seria el script para que redondease a 2 decimales unicamente? El otro script con el que me estoy peleando es el siguiente:
<html>
<head>
<title></title>
<script language="javascript">
function contar() {
var checkboxes = formulario.checkbox; //Array que contiene los checkbox
var cont = 0; //Variable que lleva la cuenta de los checkbox pulsados
for (var x=0; x < checkboxes.length; x++) {
if (checkboxes[x].checked) {
cont = cont + 1;
}
}
formulario.uno.value = cont;
}
</script>
<script language="javascript">
function contar() {
var checkboxes = formulario.checkbox2; //Array que contiene los checkbox
var cont = 0; //Variable que lleva la cuenta de los checkbox pulsados
for (var x=0; x < checkboxes.length; x++) {
if (checkboxes[x].checked) {
cont = cont + 1;
}
}
formulario.dos.value = cont;
}
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="formulario" method="post" action="">
<input type="checkbox" name="checkbox"
onClick="contar();">
<input type="checkbox" name="checkbox"
onClick="contar();">
<input type="checkbox" name="checkbox"
onClick="contar();">
<input type="checkbox" name="checkbox2"
onClick="contar();">
<input type="checkbox" name="checkbox2"
onClick="contar();">
<input type="checkbox" name="checkbox2"
onClick="contar();">
<br>
<input type="text" name="dia" size="10">
<br>
<input type="text" name="uno" size="10">
<br>
</form>
</body>
</html>
El problema es que lo que quiero es que cuente los checkbox en dos grupos, por un lado los que se llamen checkbox y por otro los que se llamen checkbox2, pero no lo consigo, solo me cuenta 1 de los grupos, y el otro lo ignora. ¿Dónde está el error? ¿Cómo seria el código para conseguirlo? Muchiiisimas gracias
<html>
<head>
<title></title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<SCRIPT LANGUAGE=JavaScript>
function Sumar() {
var val1;
var val2;
var val3;
val1 = (! ParseFloat(document.factura.sum1.value))?0:parseFloat(document.factura.sum1.value);
val2 = (! ParseFloat(document.factura.sum2.value))?0:parseFloat(document.factura.sum2.value);
val3 = (! ParseFloat(document.factura.sum3.value))?0:parseFloat(document.factura.sum3.value);
document.factura.tot.value = val1 * (val2 * 1.38 + val3 * 1.1);
}
</SCRIPT>
<form name=factura>
<tr><td><input type=text value="Item 1"></td>
<td><input name=sum1 size=5 onChange=Sumar()></td>
</tr>
<tr><td><input type=text value="Item 2"></td>
<td><input name=sum2 size=5 onChange=Sumar()></td>
</tr>
<tr><td><input type=text value="Item 3"></td>
<td><input name=sum3 size=5 onChange=Sumar()></td>
</tr>
<tr><td align=right><input type=button value="Total:" onClick=Sumar()></td>
<td><input name=tot size=6></td>
</tr>
</form>
</body>
</html>
Todo funciona bien, pero dependiendo de la multiplicación, hay veces que el resultado es, por ej., 12,59999999999 ¿Cómo seria el script para que redondease a 2 decimales unicamente? El otro script con el que me estoy peleando es el siguiente:
<html>
<head>
<title></title>
<script language="javascript">
function contar() {
var checkboxes = formulario.checkbox; //Array que contiene los checkbox
var cont = 0; //Variable que lleva la cuenta de los checkbox pulsados
for (var x=0; x < checkboxes.length; x++) {
if (checkboxes[x].checked) {
cont = cont + 1;
}
}
formulario.uno.value = cont;
}
</script>
<script language="javascript">
function contar() {
var checkboxes = formulario.checkbox2; //Array que contiene los checkbox
var cont = 0; //Variable que lleva la cuenta de los checkbox pulsados
for (var x=0; x < checkboxes.length; x++) {
if (checkboxes[x].checked) {
cont = cont + 1;
}
}
formulario.dos.value = cont;
}
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="formulario" method="post" action="">
<input type="checkbox" name="checkbox"
onClick="contar();">
<input type="checkbox" name="checkbox"
onClick="contar();">
<input type="checkbox" name="checkbox"
onClick="contar();">
<input type="checkbox" name="checkbox2"
onClick="contar();">
<input type="checkbox" name="checkbox2"
onClick="contar();">
<input type="checkbox" name="checkbox2"
onClick="contar();">
<br>
<input type="text" name="dia" size="10">
<br>
<input type="text" name="uno" size="10">
<br>
</form>
</body>
</html>
El problema es que lo que quiero es que cuente los checkbox en dos grupos, por un lado los que se llamen checkbox y por otro los que se llamen checkbox2, pero no lo consigo, solo me cuenta 1 de los grupos, y el otro lo ignora. ¿Dónde está el error? ¿Cómo seria el código para conseguirlo? Muchiiisimas gracias
Respuesta de unholy
1
5 respuestas más de otros expertos
Respuesta de derke
1
Respuesta de abetop
1
Respuesta de newdavinci
1
Respuesta de bfernandez
1
Respuesta de nachozero2
-1