2016-03-01 61 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; 
} 
相關問題