我是Javascript的noob,但我試圖在我的網站上實現一些用戶可以輸入數量的內容,並且小計在輸入時動態更新。 例如:如果商品是每件10美元,並且用戶在文本字段中鍵入5,我希望它在文本框旁邊顯示$ 50。很簡單的乘法,但我不知道如何用Javascript做到這一點。不知何故,我認爲onKeyPress?謝謝!作爲用戶輸入數字的Javascript計算器
3
A
回答
5
假設下面的HTML:
<input type="text" id="numberField"/>
<span id="result"></span>
的JavaScript:
window.onload = function() {
var base = 10;
var numberField = document.getElementById('numberField');
numberField.onkeyup = numberField.onpaste = function() {
if(this.value.length == 0) {
document.getElementById('result').innerHTML = '';
return;
}
var number = parseInt(this.value);
if(isNaN(number)) return;
document.getElementById('result').innerHTML = number * base;
};
numberField.onkeyup(); //could just as easily have been onpaste();
};
這裏有一個working example。
0
您應該處理'onkeyup'和'onpaste'事件,以確保您通過鍵盤和剪貼板粘貼事件捕獲更改。
<input id='myinput' />
<script>
var myinput = document.getElementById('myinput');
function changeHandler() {
// here, you can access the input value with 'myinput.value' or 'this.value'
}
myinput.onkeyup = myinput.onpaste = changeHandler;
</script>
同樣,使用getElementById
和元素的innerHTML
屬性設置元素的內容時要顯示的結果。
+0
是'onpaste'被認爲是標準嗎? onchange可能是一個很好的選擇。 – lincolnk 2010-09-21 05:19:39
相關問題
- 1. 將操作員作爲用戶輸入的計算器
- 2. JavaScript計算器 - 如何獲得輸入字段的數字?
- 3. 計算用戶的輸入
- 4. 匹配用戶輸入並通過數字計算輸入C++
- 5. 計算器解析用戶輸入
- 6. 使用用戶的輸入作爲循環計數器
- 7. 使用用戶輸入計算分數
- 8. 的Javascript文本輸入計算器
- 9. 使用log4cxx作爲輸入計數器
- 10. Javascript用戶輸入平均GPA計算器
- 11. Perl程序來計算用戶輸入的數字的總和
- 12. 計算用戶輸入的數字之間的差異
- 13. 計算器,可以把文字作爲輸入
- 14. 計算字符串輸入的字數
- 15. javascript數組輸入用戶和平均值計算
- 16. 根據用戶的輸入計算字數
- 17. 計數器的用戶輸入
- 18. 使用鍵盤作爲XAML和C#計算器的輸入
- 19. Javascript動態輸入計算
- 20. 如何將BMR計算器輸出更改爲舍入數字?
- 21. 用戶輸入的Python公式計算
- 22. TypeError用戶輸入值的計算
- 23. 用戶輸入字符串後,程序不計算函數
- 24. 計算器輸入是字符串
- 25. 用Python計算用戶輸入時間
- 26. 使用計數器在數組中搜索用戶輸入字
- 27. 基於用戶輸入的Javascript倒計時和countup計時器
- 28. 重置計算器輸入框爲js
- 29. 根據用戶輸入計算已用時間Javascript
- 30. JavaScript - 獲取用戶輸入並用於計算以驗證值
啊哈!這完美的作品!還有一件事,是否有一種方法可以在用戶輸入任何內容之前,爲文本字段中的默認值計算相同的內容?謝謝:) – RobHardgood 2010-09-21 05:04:37
@RobHardgood,我編輯了我的答案。試試吧,它應該工作。 – 2010-09-21 05:11:34
所以呢......再次感謝! – RobHardgood 2010-09-21 05:19:23