Tengo un formulario que es básicamente una calculadora. puedes escribir una ecuación y la evaluará. También tengo 2 campos de memoria (cuadros de texto llamados m1 y m2) donde puede escribir algo y tendrá ese valor y luego cuando escriba una expresión en el primer cuadro, puede hacer referencia a m1 o m2 en su ecuación y evaluará usando los números que ingresó en los campos de memoria.Cómo verificar si un nombre eval no está definido
El problema es que si intentas hacer referencia a m1 o m2 en tu ecuación y los cuadros de texto están en blanco, obtienes un error indefinido.
He estado girando las ruedas durante horas para tratar de verificar que si la ecuación se evalúa como indefinida, solo muestre un cuadro emergente. Necesito esto en raw javascript. cualquier ayuda es apreciada
function displayResult(thisElement)
{
thisElement.value = eval(thisElement.value); <!-- this line throws the error if you use m1 and no m1 is defined, m2 and no m2 is defined, etc -->
if(!(thisElement.value>0))
{
thisElement.value=0;
}
}
function mem(v)
{
v.value = eval(v.value);
eval(v.name+"="+v.value);
}
<input id="calcFormula" name="calculate" size="40" />
<input type="submit" value="Calculate" onclick="displayResult(this.form.calculate);" />
<input name="m1" id="m1" size="12" onchange="mem(this);" value="0" />
<input name="m2" id="m2" size="12" onchange="mem(this);" value="0" />
Sin Al analizar la cuestión con demasiada profundidad, ¿habrá algún problema al verificar que m1.value y m2.value no estén indefinidos antes de intentar evaluar? EDITAR: Bien, ahora puedo ver por qué eso no funcionaría. Admito que esto es mucho más complejo de lo que parecía. –
¡¡¡Ah !!! Demasiado eval !! – Mageek
Realmente debería usar una biblioteca como Knockout.js. Esto es demasiado complicado. –