Ho un modulo che è fondamentalmente una calcolatrice. puoi digitare un'equazione e la valuterà. Ho anche 2 campi di memoria (caselle di testo denominate m1 e m2) in cui è possibile digitare qualcosa e che manterrà quel valore e quindi quando si digita un'espressione nella prima casella, è possibile fare riferimento a m1 o m2 nella propria equazione e valuterà usando i numeri che hai inserito nei campi di memoria.Come verificare se un nome di eval non è definito
Il problema è se si tenta di fare riferimento a m1 o m2 nella propria equazione e le caselle di testo sono vuote, si ottiene un errore non definito.
Ho girato le mie ruote per ore per provare a mettere una sorta di controllo che se l'equazione è valutata a indefinito, basta mostrare una finestra pop-up. Ho bisogno di questo in javascript javascript. ogni aiuto è apprezzato.
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" />
Senza guardando troppo in profondità nella domanda, ci sarebbe un problema con il controllo per assicurarsi che m1.value e m2.value non siano indefiniti prima di provare a valutare? EDIT: Ok, posso vedere ora perché non avrebbe funzionato. Ammetto che è molto più complesso di quanto non sia apparso prima. –
Ah !!! Troppo eval !! – Mageek
Dovresti davvero usare una libreria come Knockout.js. Questo è troppo disordinato. –