jQuery通过按键获取sum总是落后一步
jQuery getting sum with keypress always one step behind
我正在尝试创建一个计算器,我想在其中对每次按键进行加法/求和,如下所示:
$('#padd').keypress(function() {
var ypoints = "200";
var points = parseInt( $(this).val() );
console.log( "Points: " + (points + parseInt(ypoints)) );
});
我的问题是,"积分"似乎总是落后一步。假设我的"ypoints"是200,我输入第一个1,console.log显示"NaN"?如果我输入"10",console.log会显示"201",而实际上应该显示"210"?!?如果我在添加字段中添加一个"100",它会显示"210",但应该显示"300"。总是落后一个按键?!?
我在这里遗漏了什么,或者这不是正确的方法吗?
如有任何帮助,我们将不胜感激:-)
尝试使用keyup
函数(尽管您可能根本不想侦听key*
事件,请参阅下文):
$('#padd').keyup(function(){
var ypoints = 200;
var points = parseInt($(this).val());
console.log("Points: "+(points+ypoints));
});
应该监听显式input
事件,而不是keyup
:
$('#padd').on("input", function(){
var ypoints = 200;
var points = parseInt($(this).val());
console.log("Points: "+(points+ypoints));
});
使用keyup
监听input
事件胜过使用number
类型的input
时的示例。在现代浏览器中,这会在输入字段中添加一个步进器,您可以使用鼠标将输入值递增或递减1。这不会触发keyup
事件(没有按键),但会更改值。
实际上,这是一个特定事件何时触发以及input
值当时的状态的问题。在quicksmode.org上有一个解释:
按键
当用户释放密钥时激发,在执行该密钥的默认操作之后。
以及MDN:上有关input
事件的更多信息
当或元素的值发生更改时,DOM输入事件被同步激发。
试试这个,它是一个工作代码:Fiddle
$('#padd').keyup(function(){
var ypoints = "200";
var points = parseInt($(this).val());
alert("Points: "+(points+parseInt(ypoints)));
});
您也可以用这种方式编码。。。
function GetTextboxAmount(obj) {
var retVal = 0;
try {
if (obj.val() == "") {
retVal = 0;
} else if (obj.val() == '') {
retVal = 0;
} else if (isNaN(parseFloat(obj.val()))) {
retVal = 0;
} else {
retVal = Math.round(parseFloat(obj.val()));
}
} catch (e) { retVal = 0; }
obj.val(retVal);
return retVal;
}
$('#padd').keyup(function(){
var ypoints = "200";
var points = GetTextboxAmount($(this));
console.log("Points: "+(points+parseInt(ypoints)));
});
Problem in ParseInt function.
try this Code:
$('#padd').keypress(function(){
var ypoints = "200";
var points = parseInt($(this).val());
console.log("Points: "+parseInt(ypoints+points));
});
相关文章:
- 对父作用域的指令更新延迟了一步
- Parsley.js,多步骤表单,在移动到上一步时跳过验证
- 有没有一种方法可以在所有嵌套循环之后放置一个标签,以便在一步中将它们全部打断
- 如何禁用在Bootstrap中不完成一步就转到下一步
- 如何使用Jquery一步一步地获取PHP数据
- jQuery Slider 滑得太远了一步
- 将“下一步”和“上一个”按钮添加到较大的图像
- 引导表单向导 - 防止在提交 ajax 响应的每个页面表单出现错误时滚动到下一步
- 如何创建一个“下一步”按钮,使用 Java 脚本和 Twitter Bootstrap 切换选项卡
- 如何在单击下一步时使文本移动/更改
- 您如何控制在填写表单时单击下一步时 iOS/Android 将关注哪个字段
- JQuery SlideToggle()在放松的每一步都执行函数
- 对变更作出反应->setState落后一步
- AngularJS中的上一步
- Jquery UI选项卡-根据输入字段值,使用“下一步”/“上一步”按钮推进选项卡
- 我有一系列的处方受试者(a->B->C->a),但最后一步不起作用
- Jquery选项卡单击时高亮显示'下一步'按钮
- 如何解析用户对象以返回屏幕名称并继续下一步操作
- 如何点击谷歌饼图进入下一步行动
- jQuery通过按键获取sum总是落后一步