jquery - 仅捕获文本输入中的新值

时间:2016-01-05 08:14:43

标签: javascript jquery input

我试图创建一个 JQuery 方法来告诉我用户在文本输入中写了什么。例如,如果输入文本为foo且用户输入b,我想抓住它。如果用户之后输入a,我只想抓住a而不是ba

我该怎么做?

编辑:我是使用此代码完成的:

$(".writetags").each(function(){
        var elem = $(this);
        elem.bind("keyup", function() {
            elem.data("oldVal", $(this).data("newVal") || "");
            elem.data("newVal", $(this).val());
            var oldVal = elem.data("oldVal");
            var newVal = $(this).val();
            console.log("Was "+oldVal+" is "+newVal);
            var newChar = newVal.charAt(newVal.length-1);
            var oldChar = oldVal.charAt(oldVal.length-1);
            console.log("The user just typed in "+newChar+" instead of "+oldChar);
        }); 
    });

3 个答案:

答案 0 :(得分:1)

这是一个通用代码,用于侦听网页中的所有文本输入更改:

 $(document).ready(function() {
    $("input[type=text]").change(function() {
        $(this).data("oldVal", $(this).data("newVal") || "");
        $(this).data("newVal", $(this).val());
        console.log($(this).data("oldVal"));
        console.log($(this).data("newVal"));
    });
});

答案 1 :(得分:1)

使用keyCode事件中的keypress并使用String.fromCharCode获取角色: -



$('input').keypress(function(event){
 var character = String.fromCharCode(event.which || event.charCode || event.keyCode);
 console.log(character);
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" />
&#13;
&#13;
&#13;

答案 2 :(得分:1)

谢谢大家,但我设法使用此代码:

$(".writetags").each(function(){
        var elem = $(this);
        elem.bind("keyup", function() {
            elem.data("oldVal", $(this).data("newVal") || "");
            elem.data("newVal", $(this).val());
            var oldVal = elem.data("oldVal");
            var newVal = $(this).val();
            console.log("Was "+oldVal+" is "+newVal);
            var newChar = newVal.charAt(newVal.length-1);
            var oldChar = oldVal.charAt(oldVal.length-1);
            console.log("The user just typed in "+newChar+" instead of "+oldChar);
        }); 
    });