2015-02-09 35 views
0

我试图用2个其他输入来更新输入。例如Onkeypress更新输入落后1步

金额:(用户输入值)

费用:(值已经被设置 - 禁用值:0.0002)

总计:(量 - 费)通过javascript制定了下面

$('#amount').keypress(function() { 
var total = $('#amount').val() - $('#fee').val(); 
if(typeof total != 'undefined'){ $('#total').val(total) }}); 

当我用输入的数字“按键”时,它比总输入更新输入落后一步。

举一个例子,如果我在输入数量中输入1,那么当我再次按1时,总数将是-0.0002(即使输入量现在是11等等) 。)

+4

尝试使用keyup – 2015-02-09 23:43:13

+0

工作。我需要查找不同的.key来查看差异。谢谢。 – 2015-02-09 23:46:18

+0

我应该把它作为答案吗? :P – 2015-02-09 23:48:20

回答

3

它的,因为你正在使用keypress包含2个事件​​和keyup,使你的函数在第一个启动的 -​​,让你得到你的价值观,就像你说的“慢一步”,原因当keydown事件被触发时,您的输入字段没有收到按下的键值。使用keyup,你会得到你的结果:

$('#amount').keyup(function() { 
    var total = $('#amount').val() - $('#fee').val(); 
    if(typeof total != 'undefined') $('#total').val(total) 
}); 

Fiddle

0

真,因为当函数被调用的领域不与值更新

被称为在这个事件步骤

  • Keydown
  • Keypress
  • 的UpdateView
  • 按键时
  • 的UpdateView
  • KEYUP

所以,如果你可以将此事件更改为KEYUP那么你会得到最新的值。