如何在按下特定键后捕获输入?

时间:2015-07-23 08:42:38

标签: javascript jquery keypress

我需要在键入文本框之前捕获输入并根据我的需要进行编辑。我用javascript和jQuery编写 我有一个文本框,我想检测何时输入“#”字符 - 在写入文本框之前 - 然后捕获之后出现的所有输入(也在写入之前),直到我得到另一个“ #”。

我在网上看过很多关于如何使用“keypress”来检测特定键的类型的例子,但我不知道如何捕获2个特殊键之间输入的所有文本,然后再写入文本框。

我可以在这个主题上使用任何帮助!

3 个答案:

答案 0 :(得分:1)

使用CREATE TABLE my_table ( id int IDENTITY PRIMARY KEY, name text NOT NULL UNIQUE, blabla text NOT NULL ); 来阻止正在写入密钥。 检查你是否在"之间"哈希并记录密钥(如果是这样的话)(将它们写入字符串) 当你离开'一个哈希包装,用字符串做一些事情。

检查下面的JSFiddle 以获得更详细的示例!



UNIQUE

preventdefault()




https://jsfiddle.net/svArtist/yhzp3ob3/

答案 1 :(得分:1)

在第一种情况下,对所有字符都禁止输入,然后在text var中编辑,然后为输入字段赋值

$('#typehere').on("keypress",function(e){
    e.preventDefault();

    if(e.which == "#".charCodeAt(0)){

        if(listening){
            listening= false;
            //do what you want with the text
            alert("no more listening: "+text);
        }else{
            listening = true;
            alert("listening"); 
        } 
        return true;
    }

    if(listening)
        text+= String.fromCharCode(e.which);
});

尝试小提琴https://jsfiddle.net/42fns28a/

在第二种情况下,您可以输入输入字段,直到您按下特殊字符,键入并编辑您想要的内容,直到第二次按下特殊字符

$('#typehere').on("keypress",function(e){

    if(e.which == "#".charCodeAt(0)){
        e.preventDefault();
        if(listening){
            listening= false;
            //do what you want with the text
            $(this).val($(this).val()+text);
            alert("no more listening: "+text);
        }else{
            listening = true;
            alert("listening"); 
        } 
        return true;
    }

    if(listening){
        e.preventDefault();
        text+= String.fromCharCode(e.which);
    }
});

第二小提琴https://jsfiddle.net/2cdjoq6u/

答案 2 :(得分:0)



$( "#target" ).keypress(function() {
  console.log( "Handler for .keypress() called." );
});




链接到这里:https://api.jquery.com/keypress/ 积分到admd



$( "#target" ).change(function() {
  console.log("test input changed");
});




链接到这里:https://api.jquery.com/change/