如何触发键盘输入事件以在textarea

时间:2017-06-08 12:00:20

标签: javascript jquery html twitter-bootstrap

当用户输入冒号(:)并按回车键时,我有一个html文本区域,文本区域的下一行应该有缩进

我的代码

<textarea id="yourcode" cols="40" rows="10" class="form-control"></textarea>

我尝试了什么

$('#yourcode').keypress(function(e) {
    if(e.keyCode == 58) {
        if(e.keyCode == 13 ) {
            $(this).val(
                $(this).val().substring(0, start)
                + "\t"
                + $(this).val().substring(end)
            );
        }
    }
});

2 个答案:

答案 0 :(得分:1)

正如我在评论中告诉你的那样,第二个if语句将无法到达,因为如果keyCode = 58,它将永远不会是13。

另外,请改用keyup

检查以下代码:

$(function() {
  $('textarea').on('keyup', function(e) {
    if (e.key === 'Enter') {
      var text = $(this).val().trim();

      if (text.substring(text.length - 1) == ':') {
        $(this).val($(this).val() + '\t');
      }
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="yourcode" cols="40" rows="10" class="form-control">
</textarea>

答案 1 :(得分:0)

$('#yourcode').keypress(function(e){
 if(e.keyCode == 13){
   val = $(this).val();
   if(val.substr(val.length - 1) == ":"){
        console.log(": after enter")
        // your code here
        $('textarea').val(val.replace(/:/g, ':\n') + "   ");
   }
 }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<textarea id="yourcode" cols="40" rows="10" class="form-control">
 </textarea>