2016-03-01 59 views
0

我正在JavaScript中构建一个计算器,并且想要阻止用户按下NaN(如鸿沟,加上等等,也就是先按一个数字),并防止Nan被按下两次例如不要让分压按两次。我怎么能这样做呢?防止NaN被第一次或第二次按下

这里是我的代码:

var result = ""; //must be a string so it concatenates rather than adds 

function calc(digit){ 

    if (digit == "ans"){ 
     var prevResult = result; 
     result = prevResult; 
     $("#resultBox").append("Ans"); 
    } 
    else if (digit == "sum"){ 
     $("#resultBox").val(eval(result)); 
    } 
    else if (digit == "clear"){ 
     location.reload(); 
    } 
    else{ 
     result += digit; 
     $("#resultBox").val(result); 
    } 
} 

这里是我的HTML几个按钮的例子:

<button class="large" type="button" value="divide"onclick=calc("/")>/</button> 

<button class="small" type="button" value="1" onclick=calc(1)>1</button> 
+0

将上次按下的按钮存储在一个变量中,并检查它。如果它是空的,那么它是第一个被按下的按钮,如果变量有一个值,你检查它是一个数字还是一个操作符,并基于你做了什么。 – reinder

+0

'result = prevResult;'似乎是多余的。 ''location.reload();'是钝的,为什么不在表单中输入,所以你可以'form.reset()'? – RobG

回答

0

变化第一个else部分

else if (digit == "sum"){ 
    if (result.length > 0) 
    { 
     $("#resultBox").val(eval(result)); 
    } 
} 

同样,对于加分,检查最后一个字符是否是数字

if (result.length > 0 && !isNaN(result.slice(-1)) 
{ 
    result += digit; 
} 
相关问题