Foros del Web » Programando para Internet » Javascript »

Multiplicar sin mostrar resultado

Estas en el tema de Multiplicar sin mostrar resultado en el foro de Javascript en Foros del Web. Hola amigos: quisiera saber si yo puedo hacer que en el siguiente codigo no aparezca el resultado de la multiplicación en la casilla "total", pero ...
  #1 (permalink)  
Antiguo 12/04/2005, 10:28
 
Fecha de Ingreso: abril-2001
Mensajes: 46
Antigüedad: 23 años
Puntos: 0
Pregunta Multiplicar sin mostrar resultado

Hola amigos:

quisiera saber si yo puedo hacer que en el siguiente codigo no aparezca el resultado de la multiplicación en la casilla "total", pero si que me arroje el mensaje de alerta cuando el resultado de ésta sea mayor a 3 digitos

Adjunto el codigo, de antemano muchisimas gracias




<html>

<head>
<title>validacion Cantidad</title>
<script language="JavaScript">
var total;
function calcularTotalParcial(index){
var cantidad = document.getElementsByName("cantidad")[index];
var precio = document.getElementsByName("precio")[index];
var total = document.getElementsByName("total")[index];

if((cantidad.value != "") && (precio.value != "")){
total.value = cantidad.value*precio.value;
if(total.value.length > 3){
alert ("Valor mayor a 3");
}
if(total.value.length < 3){
alert ("Valor menor a 3");
}
}
}

</script>
</head>

<body>

<form>
<table>
<tr>
<td>Cantidad: <input type="text" name="cantidad" value onChange="calcularTotalParcial(0)"
/ size="20"></td>
<td>Precio: <input type="text" name="precio" value onChange="calcularTotalParcial(0)" /
size="20"></td>
<td>total: <input type="text" name="total" value disabled="true" / size="20"></td>
</tr>
</table>
</form>
</body>
</html>
__________________
Alice
  #2 (permalink)  
Antiguo 12/04/2005, 13:37
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola, Alice
Cómo no, seguro que se puede. A ver....
Por ejemplo, cámbialo a esto:
Código:
if((cantidad.value != "") && (precio.value != "")){
var totalValue = cantidad.value*precio.value;
if(totalValue.length > 3){
alert ("Valor mayor a 3");
}
if(totalValue.length < 3){
alert ("Valor menor a 3");
}
}
(La he llamado totalValue por similitud, pero podría llamarse de cualquier modo)
__________________
Angel :cool:
  #3 (permalink)  
Antiguo 12/04/2005, 14:09
 
Fecha de Ingreso: abril-2001
Mensajes: 46
Antigüedad: 23 años
Puntos: 0
Pregunta

Hola, antes que nada muchisimas gracias por responderme

mira, he probado los cambios que me has dicho, incluso borrando la linea de codigo html en donde se desplegaba el valor pero no resulta, no me ha mostrado la ventana de alerta.... que puede estar pasando????

__________________
Alice
  #4 (permalink)  
Antiguo 12/04/2005, 15:43
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Creo que lo tengo. El problema era que la variable es un número, para mirar su longitud debes convertirlo a texto:
if(totalValue.toString.length > 3)

De todos modos ¿qué es lo que quieres comprobar? Lo digo por el mensaje "Valor mayor a 3", en realidad lo que estás comprobando es si el valor es mayor de 999 (3 cifras) o, si tiene deciamles, ni siquiera eso.
__________________
Angel :cool:
  #5 (permalink)  
Antiguo 14/04/2005, 06:52
 
Fecha de Ingreso: abril-2001
Mensajes: 46
Antigüedad: 23 años
Puntos: 0
Información multiplicar sin mostrar resultado

hola,
si en realidad como que el mensaje no es muy claro pero lo que se desea hacer es una especie de programa que enseñe a los niños como estan compuestos los resultados en este caso, de una multiplicacion, vale decir por unidades, decenas, centenas, unidades de mil etc me entiendes?

y sabes modifique el programa con los cambios que me sugeriste pero sigue sin funcionar ahora me indica que aunque el resultado sea mas largo que 3 la ventana de alerta siempre es la que dice "menor a 3"... sabes por que¿?


Gracias por tu ayuda
__________________
Alice
  #6 (permalink)  
Antiguo 14/04/2005, 08:39
 
Fecha de Ingreso: abril-2001
Mensajes: 46
Antigüedad: 23 años
Puntos: 0
Información multiplicar sin mostrar resultado

Se me olvidaba, este es el error que me aparece:


ERROR :'TOTAL.VALUE.LENGTH' ES NULO O NO ES UN OBJETO
CODIGO:0

__________________
Alice
  #7 (permalink)  
Antiguo 14/04/2005, 16:01
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Alice, ¿puedes poner el código tal como lo tienes? Si no, es difícil ver lo que falla. En mis pruebas funciona:
Código HTML:
<html>
<head>
<title>validacion Cantidad</title>
<script language="JavaScript">
var total;
function calcularTotalParcial(index)
{
	var cantidad = document.getElementsByName("cantidad")[index];
	var precio = document.getElementsByName("precio")[index];
	var total = document.getElementsByName("total")[index];

	if ( (cantidad.value != "") && (precio.value != "") )
	{
		var totalValue = cantidad.value*precio.value;
		if (totalValue.toString().length > 3)
		{	alert ("Valor mayor a 3");
		}
		if (totalValue.length < 3)
		{	alert ("Valor menor a 3");
		}
	}
}

</script>
</head>

<body>
<form>
<table>
<tr>
<td>Cantidad: <input type="text" name="cantidad" value onChange="calcularTotalParcial(0)"
/ size="20"></td>
<td>Precio: <input type="text" name="precio" value onChange="calcularTotalParcial(0)" /
size="20"></td>
<td>total: <input type="text" name="total" value disabled="true" / size="20"></td>
</tr>
</table>
<input type="button" onChange="calcularTotalParcial(0)" value="calcular">
</form>
</body>
</html> 
__________________
Angel :cool:
  #8 (permalink)  
Antiguo 15/04/2005, 08:24
 
Fecha de Ingreso: abril-2001
Mensajes: 46
Antigüedad: 23 años
Puntos: 0
Información multiplicar sin mostrar resultado

Hola, claro ningun problema, esta es:


<html>

<head>
<title>validacion Cantidad</title>
<script language="JavaScript">
var total;
function calcularTotalParcial(index)
{

var cantidad = document.getElementsByName("cantidad")[index];
var precio = document.getElementsByName("precio")[index];

if((cantidad.value != "") && (precio.value != ""))
{
var total = cantidad.value*precio.value;

if(total.toString.length<3)
alert ("Valor -3");
else
{
if(total.toString.length>3)
alert ("Valor +3");

}
}
}

</script>
</head>

<body>

<form>
<table>
<tr>
<td>Cantidad: <input type="text" name="cantidad" value onChange="calcularTotalParcial(0)"
/ size="20"></td>
<td>Precio: <input type="text" name="precio" value onChange="calcularTotalParcial(0)" /
size="20"></td>
</tr>
</table>
</form>
</body>
</html>

Ahora, esta es la misma pero que empeze a ver paso a paso los datos, los largos, y el error:


<html>

<head>
<title>validacion Cantidad</title>
<script language="JavaScript">
var ltotal=0;
function calcularTotalParcial(index)
{

var cantidad = document.getElementsByName("cantidad")[index];
var precio = document.getElementsByName("precio")[index];



if((cantidad.value != "") && (precio.value != ""))
{

alert("cantidad "+cantidad.value+"<BR>");
alert("precio "+precio.value+"<BR>");

alert("largo cantidad "+cantidad.value.length+"<BR>");
alert("largo precio "+precio.value.length+"<BR>");


total = cantidad.value*precio.value;

alert("total: "+total+"<BR>");
alert("largo total: "+total.value.length+"<BR>");




// ltotal=(total.value.length)

if(ltotal<3)
alert ("Valor -3");
else
{
if(ltotal>3)
alert ("Valor +3");

}
}
}

</script>
</head>

<body>

<form>
<table>
<tr>
<td>Cantidad: <input type="text" name="cantidad" value onChange="calcularTotalParcial(0)"
/ size="20"></td>
<td>Precio: <input type="text" name="precio" value onChange="calcularTotalParcial(0)" /
size="20"></td>
</tr>
</table>
</form>
</body>
</html>


En esta segunda rutina es en donde aparece el error que te envie antes y en la primera con el tostring siempre el largo es 1 aunque sea mas por eso el mensaje siempre es "menor a 3"

no se que pasa.....
__________________
Alice
  #9 (permalink)  
Antiguo 16/04/2005, 09:03
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola de nuevo
Se me escaparon unos paréntesis; debe ser
toString().length

(Supongo que estaba dando un valor nulo y por eso siempre <3)
__________________
Angel :cool:
  #10 (permalink)  
Antiguo 18/04/2005, 09:08
 
Fecha de Ingreso: abril-2001
Mensajes: 46
Antigüedad: 23 años
Puntos: 0
Multiplicar sin mostrar resultado



hola!!

Si ahora si ha funcionado muy bien!!!

Gracias por tui paciencia en enseñame, como dice tu nickname eres un "Angel".

Muchisimas gracias

Salu2,

__________________
Alice
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 16:23.