这是this thread的扩展名。
我的情况:
我需要用户输入一个十进制值(即0.05)并在用户输入(或粘贴)时动态显示一个简单的计算。显示的示例适用于整数,但不能在输入字段中输入小数。
我需要在多个地方显示结果。我假设我可以将getElementById更新为getElementByClass,但这不起作用。
我的代码:
<input type="text" name="capname" id="numberField" value="0.07" maxlength="5" />
<span name="mpd" id="mpdresult" class="mpdresult" ></span>
<span class="mpdresult" ></span> (second display)
<script>
window.onload = function() {
var base = 500;
var numberField = document.getElementById('numberField');
numberField.onkeyup = numberField.onpaste = function() {
if(this.value.length == 0) {
document.getElementById('mpdresult').innerHTML = '';
return;
}
var number = parseInt(this.value);
if(isNaN(number)) return;
document.getElementById('mpdresult').innerHTML = number * base;
};
numberField.onkeyup(); //could just as easily have been onpaste();
};
</script>
答案 0 :(得分:0)
答案 1 :(得分:0)
使用parseFloat
代替parseInt
。 http://jsfiddle.net/janCY/
没有这样的函数getElementByClass
。有getElementsByClassName
,它返回带有元素的数组。但为什么不使用JQuery?
答案 2 :(得分:0)
请使用 var number = parseFloat(this.value);
而不是 var number = parseInt(this.value);