2013-02-28 46 views
0

我想捕獲一些事件,即某些文本輸入到文本框並在用戶看到更改之前對其進行修改。 我嘗試添加keyDown,keyUp和keyPressed事件,但它們都在更改後調用。JavaScript - 修改輸入到文本框中的文本

有沒有辦法做到這一點?

+1

'之前用戶看到變化' - 誰輸入此文本,而不是用戶? – dfsq 2013-02-28 08:06:12

+0

您的意思是在輸入更改後幾秒鐘更改它? – 2013-02-28 08:08:23

+0

是的 - 但我想,例如,如果用戶試圖刪除特定字符 – 2013-02-28 08:08:38

回答

0

這有工作

$("#input").keypress(function(replace){ 
     if(replace.which==46) 
     { 
      $("#input").val($(this).val() + 'no_dots'); 
      replace.preventDefault(); 
     } 
    }); 

它取代(,)字符,試試這個代碼,我認爲這keypress行之有效

+0

在更改工具位置後調用按鍵 - 用戶已經看到更改的文本 – 2013-02-28 08:20:35

+0

也許你應該在'replace.preventDefault()'之前執行你的函數?只是一個建議。 – Davit 2013-02-28 08:22:40

+0

檢查這個'http:// jsfiddle.net/cDE3L/4 /',我認爲這是基於我的理解。我不能再走了。祝你好運 – Davit 2013-02-28 08:25:00

0

這似乎是你追求的。 http://jsfiddle.net/wcS9j/1/

var blacklist = /(foo|bar)/ig; 

$('input').on('keyup', function() { 
    if (blacklist.test(this.value)) { 
     this.value = this.value.replace(blacklist, ''); 
    } 
});