image
Inicio » Foros » JavaScript

JavaScript

Duda, sumar o restar

Volver al foro | Responder | Añadir nuevo tema


De: Gerardo Hernández
Fecha: 20/11/2007
Mensaje:

Hola a todos, tengo una duda un poco tonta, estoy haciendo, un microscript con una form, la form contiene 2 cajas de texto y un select, las opciones del select son sumar o restar, se supone que cuando seleccione sumar, el valor de los campos de texto se debe sumar, y viceversa si se selecciona restar en el select, pero no hace nada.




Quizás le interese
De: ZeroKilled
Util para: 4 personas

Fecha: 20/11/2007
Mensaje:

el funcionamiento depende en como te bases para realizar la operacion. o sea, dado tu caso con tiene tres valores: operando(1), operador, y otro operando(2). yo asumo que tu tengas un formulario como el siguiente:
<form ... name='f'>
<input ... name='op1' />
<select name='op'>
<option value='+' />
<option value='-' /></select>
<input type='button' value='computar' onclick='comp(this.form)'/>
<input ... name='resultado' />
</form>

si tomamos el valor de cada campo y lo unimos quedaria algo como '5+2', siendo los numeros como ejemplo y el operador seleccionado. notese que se trata de un string y no de una operacion, esto porque cada valor de los campos son tratados como string y utilizando el oeprador para unirlos no los suma sino que forma una nueva cadena. significa que el siguiente codigo es incorrecto:
function comp(form){
form.resultado.value = form.op1.value + form.op.value + form.op2.value;
}

¿cuales son las posibles opciones?
por el momento se me ocurren dos: puedes usar control de flujo de acuerdo al operando, o bien puedes usar la funcion eval. la solucion mas facil y rapida es la funcion eval el cual toma una cadena y la interpreta como sentencias javascript:
function comp(form){
form.resultado.value = eval(form.op1.value + form.op.value + form.op2.value);
}

la otra alternativa es sencilla solo que requiere mas codigo de lo que usarias para la muestra anterior. de momento lo voy a dejar hasta aqui porque supongo que con esta opcion es suficiente.



Volver al foro | Responder | Añadir nuevo tema

Quizás le interese:

WebEstilo.com no se hace responsable de las opiniones que los usuarios puedan verter en cualquiera de los foros existentes.

Si te solucionó el problema pulsa en G+1


Gracias!






Comparte



Última modificación:31 de Agosto de 2017. Spain - Espa�a.
© 1998-2004 por . Todos los derechos reservados.