在更改输入文本上的textarea中插入数据

时间:2016-09-14 14:59:39

标签: javascript jquery html

这是我的代码并且运行良好但是当我从textarea删除一些字符时它停止工作!!!



$(function() {
  $('#inputnumserie').keyup(function() {
    var numserie = $(this).val();
    $('#test2').append($('#inputnumserie').val())
    $('#inputnumserie').val('');
  });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="inputnumserie" id="inputnumserie" style="text-align:right;" size="14">
<textarea id="test2"></textarea>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

使用append你只是在textarea中插入节点,看起来像一个错误的方法,当你的问题发生时,文本没有显示但它仍然插在DOM上 - 检查用检查员工具---。

基于this answer的解决方案可以更新textarea的val()而不是追加节点。

&#13;
&#13;
$(function() {
  $('#inputnumserie').keyup(function() {
    var numserie = $(this).val();
    $('#test2').val(function(i,text) {
      return text + numserie;
    });
    $('#inputnumserie').val('');
  });
});
&#13;
textarea {
  display:block;
  width:80%;
  height:150px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="inputnumserie" id="inputnumserie" style="text-align:right;" size="14">
<textarea id="test2"></textarea>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

试试这个:

$(document).ready(function(){

     $('#inputnumserie').on("input",function(){

         var txt = $("#test2").val() + $(this).val();
         $("#test2").val(txt);

         $(this).val("");

     })


})

最终代码:

<!DOCTYPE html>
<html lang="en">
<head>
</head>
    <body>
        
        <input type="text" name="inputnumserie" id="inputnumserie" style="text-align:right;" size="14">
<textarea id="test2"></textarea>
        
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
       <script>
           
           
    $(document).ready(function(){

         $('#inputnumserie').on("input",function(){

             var txt = $("#test2").val() + $(this).val();
             $("#test2").val(txt);

             $(this).val("");

         })


    })
        
       </script>
    </body>
</html>