如何直接在用户输入上更改输入框中的特定文本?

时间:2015-07-01 05:02:54

标签: javascript text input

我的代码中有一个输入字段:<input type=text name=code id=code>

我想要做的是在用户在字段中输入时将特定文本转换为另一个文本。

让我解释一下。当用户在输入中输入 31546 时,我希望该文本直接转换为 HELLO

我知道这可以使用JavaScript / jQuery完成,但我对如何实现这一点没有任何想法。我怎么能?

<子> P.S。如果使用textarea更容易,我可以将输入更改为textarea。

编辑: 我从this StackOverflow post获得了一个代码,用于检测元素的任何更改,

 $('.myElements').each(function() {
   var elem = $(this);

   // Save current value of element
   elem.data('oldVal', elem.val());

   // Look for changes in the value
   elem.bind("propertychange change click keyup input paste", function(event){
      // If value has changed...
      if (elem.data('oldVal') != elem.val()) {
       // Updated stored value
       elem.data('oldVal', elem.val());

       // Do action
       ....
     }
   });
 });

但我不确定如何利用它来满足我的需求。

请关注我,因为我还是这个领域的初出茅庐。

谢谢。

3 个答案:

答案 0 :(得分:1)

一个选项是为输入设置keyup事件,然后在用户输入时替换值。例如:

$('input').keyup(function () {
    var val = $(this).val();

    var newVal = val.split('31546').join('HELLO');

    if (newVal !== val) {
        $(this).val(newVal);
    }
});

答案 1 :(得分:0)

您可以将keyup事件用作

$(document).on('keyup', '#code', function() {
  $('#code').val(convertedValue($('#takeInput').val()));
})

function convertedValue(val) {
  return 'hello';
}

答案 2 :(得分:0)

这可能会对您有所帮助: -

   <input type="text" id="code">

    $('#code').bind('change click keyup onpaste', function(ele){
        var origVal = ele.target.value;
        if(origVal.indexOf("123") !== -1){
            ele.target.value = origVal.replace("123","Hello");
        }
    });