2013-02-28 87 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, ''); 
    } 
});