2013-07-19 29 views
3

此問題似乎發生在基於webkit的瀏覽器(chrome和safari)中。不是Firefox。僅在輸入數字後才能選擇文本

將某些輸入字段限制爲只有數字和:後,我不再能夠選擇文本或使用箭頭鍵將光標移動到左側。輸入被取消選擇或者在光標的情況下:它被移動到輸入的末尾。 (我能在某個地方將光標在字符串中與我的鼠標點擊那裏)使用

代碼:

$('#from, #to, #rate, #break').keyup(function() { 
    this.value = this.value.replace(/[^0-9:\.]/g,''); 
}); 

例如,在小提琴:http://jsfiddle.net/PaulvdDool/EKYBr/

難道我做錯了什麼?這是一種消極的副作用,我無能爲力?或者有沒有辦法讓文本選擇和光標移動成爲可能?

+0

您使用的是什麼瀏覽器和版本?我沒有與Firefox的問題。 – lurker

+0

哎呀忘了提及它只在Chrome上。 –

回答

1

當您覆蓋該值時,插入符會自動進入輸入末尾。

只有在需要的情況下,您需要執行的操作是覆蓋該值。即是這樣的:

$('#from, #to, #rate, #break').keyup(function() { 
    switch(e.which) { 
     case 37: 
     case 38:  
     case 39: 
     case 40: break; 
     default: this.value = this.value.replace(/[^0-9:\.]/g,''); 
    } 
}); 

Demo

0

你重寫值每次。你最好拿到鑰匙,不要讓用戶輸入。

$('#time').keydown(function (event) { 
     // 48-56 => 0-9 | 58 = ":" 
     if((event.keyCode < 48 || event.keyCode > 56) or event.keyCode != 58) 
     { 
      event.preventDefault(); 
     } 
}); 

入住這fiddle

相關問題