2014-09-23 40 views
0

我有一個onKeyUp事件,它調用一個函數,當用戶鍵入3個或更多數字並將值設置爲2個小數位時,該函數將插入小數位。onKeyUp事件在用戶輸入十進制後不執行函數

例如用戶類型123 - > 1.23;用戶類型1234 - > 12.34

這是函數:

function insertDecimal(x) { 
    if (x.length > 2) { 
     x = x.replace(/[^a-zA-Z 0-9]+/g,''); 
     var xx = x.substring(0,x.length-2) + "." + x.substring(x.length - 2,x.length); 
     } 
    else { 
     var xx = x; 
     } 
    return xx; 
     } 

這沒關係,只要它去。但是我想在手動輸入時輸入小數點。

項目爲$ 10.99 用戶密鑰1099得到10.99

項目爲$ 10.999 用戶鍵10.999獲得10.999

項目爲$ 10.00 用戶鍵10得到10

我可以捕獲用戶的十進制在事件處理程序中:

var keycode = event.keyCode; 
if (keycode != 110){ 
    insertDecimal(someUserKeyValue); 
    } 

但是當用戶下一頁p返回一個數字,函數返回並執行,這不是我想要的。我很茫然。

回答

0

你爲什麼不附加處理程序onchange?所以輸入的處理更容易,因爲用戶已經輸入了他想要的輸入。

檢查此場景: 用戶希望輸入100.30,因此他鍵入100.30。在用戶點擊第二個零的那一刻,文本框的值將變爲10.0,如果發生了這種情況,如果用戶的下一個輸入是小數點.本身,您將如何實現十進制功能?那麼,除非你有要求用戶只能鍵入2位數的整數和任意數字的小數位數(xx.xxxxxx

+0

也許這就是我必須要做的。似乎必須有更好的解決方案。 – AlphaBase 2014-09-23 20:24:59

相關問題