2014-01-16 109 views
-1

我正在嘗試使用HTML,CSS和Javascript製作一個簡單的計算器。我完成了計算部分和設計,但我很難用我的DEL按鈕。我的DEL按鈕應該會退格計算器上按下的最後一個按鍵。我的HTML/Javascript計算器上的刪除按鈕有什麼問題

我在我的.js了一個叫德爾()函數,這是什麼樣子至今:

function del() 
    { 
    document.getElementById("dis").value = (document.getElementById("dis").value.getLength) - 1; 
    } 

「DIS」是我的計算器顯示屏的ID。

+0

對於未來的問題:如果您更清楚地提及您想要發生的事情,反而會發生什麼,以及您已經完成/研究了哪些措施來解決問題,您的問題將會得到更好的解決。如果你對這些問題沒有答案,那麼無論如何也許會對你有好處。 – cincodenada

回答

1

試試這個

var val = document.getElementById("dis").value; 
if(val.length > 0){ 
val = val.substring(0, val.length - 1); 
document.getElementById("dis").value = val; 
} 
+0

它工作!非常感謝! – nutellafella

0

因爲你的代碼顯示的值設置爲:

(document.getElementById("dis").value.getLength) - 1 

哪家的顯示值減去一個數字(字符串長度)的數量,因此如果該值是「500」,這將設置它到2(3-1)。顯然不是你想要的。

你想要的是獲得值,將其減少到只需要你想要的字符(可能與substr()),然後重新設置該值爲該字符串。

0

.getlength未定義。如果你想要字符串的長度,你應該使用str.length。無論如何,如果你想刪除的最後一個字符,請使用此

str=str.substr(0,-1); 

,或者爲您的代碼

document.getElementById("dis").value = document.getElementById("dis").substr(0,-1); 
+0

爲什麼downvote? – scrblnrd3

+0

'length()'也不是函數,它是一個屬性。它不會和substr()做同樣的事情。 – cincodenada

+0

@cincodenada哇,那是一個大腦屁。我的意思是'substr' – scrblnrd3

0

你需要使用字符串操作方法。 。MDN

像這樣的東西應該工作:

document.getElementById("dis").value = document.getElementById("dis").value.slice(0, -1)