2015-02-09 71 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那麼你會得到最新的值。