JavaScript on keyup function
JavaScript on keyup function
以下部分工作:
function pvst(x,y){
return parseInt(x)/100 * parseInt(y);
}
var value1 = document.getElementById('v1').value,
value2 = document.getElementById('v2').value,
input_1 = document.getElementById('v1'),
input_2 = document.getElementById('v2');
function insertValue(){
var newSum = pvst(value1, value2);
if(isNaN(newSum) === true){
document.getElementById("test").innerHTML = 'only numbers!!';
}
else{
document.getElementById("test").innerHTML = newSum;
}
}
input_1.onkeyup = insertValue();
input_2.onkeyup = insertValue();
但是,onkeyup 未按预期工作。它假设在您输入后立即更新 newSum。我不知道我哪里做错了
我看到的问题是您调用函数而不是传递函数处理程序:
使用这个(删除()
):
input_1.onkeyup = insertValue;
input_2.onkeyup = insertValue;
取而代之的是:
input_1.onkeyup = insertValue();
input_2.onkeyup = insertValue();
如果您不这样做,您的onkeyup
事件将尝试执行函数结果而不是执行函数。由于您没有在函数中返回任何内容insertValue
因此它们只是获取undefined
值而不执行任何操作。
更新:当您将值存储在变量中时,它们在每次输入更改后都不会更新,并且始终使用相同的值,要查看值,您需要从 DOM 再次获取它们,因此您需要这样做:
var newSum = pvst(document.getElementById('v1').value, document.getElementById('v2').value);
因此,我这边更新的代码应如下所示:
function pvst(x,y){
return parseInt(x)/100 * parseInt(y);
}
var input_1 = document.getElementById('v1'),
input_2 = document.getElementById('v2');
function insertValue(){
var newSum = pvst(input_1.value, input_2.value);
if(isNaN(newSum) === true){
document.getElementById("test").innerHTML = 'only numbers!!';
} else {
document.getElementById("test").innerHTML = newSum;
}
}
input_1.onkeyup = insertValue;
input_2.onkeyup = insertValue;
试试这个:
function pvst(x, y) {
return parseInt(x) / 100 * parseInt(y);
}
function insertValue() {
var value1 = document.getElementById('v1').value;
value2 = document.getElementById('v2').value;
input_1 = document.getElementById('v1');
input_2 = document.getElementById('v2');
var newSum = pvst(value1, value2);
if (isNaN(newSum) === true) {
document.getElementById("test").value = 'only numbers!!';
}
else {
document.getElementById("test").value = newSum;
}
}
示例 HTML:
<input id="v1" type="text" onkeyup="insertValue();" />
<input id="v2" type="text" onkeyup="insertValue();" />
<input id="test" />
相关文章:
- keyup事件处理程序更改焦点不适用于快速键入
- JQuery合并了keyup和focusout两个函数
- 直接在函数声明上使用function.prototype.bind
- jQuery:.click(function(){(element),collapse('show',f
- 如果连接类型为none,则Javascript Function Only警报
- onLoad function phonegap android
- 访问代码生成的输入元素上的keyup事件
- reducers在redux中得到Function not Object,what'it’他错了
- 如何使用keyup或input进行操作?javascript(jQuery)
- WIll window.addEventListener(“加载”,function(),false);等待浏览器自动填
- $(document).ready和jQuery(function($)不工作;jQuery已定义,但脚本尚未定义;t进
- 未在keyup上发布变量
- Jquery keyup()函数无法正常工作
- Javascript onunload function
- 在init function()中调用getElementById(“..”),而不是想用它做点什么的函数
- spyOn:应为间谍,但得到了Function
- Keydown/Keyup被呼叫7次
- JavaScript on keyup function
- keyup(function()) ajax request delay - jQuery
- 当keyPress()不在时,keyUp()在2秒内执行function()