防止换行,但允许在textarea(jquery)中输入(提交)

时间:2019-03-03 09:44:33

标签: javascript jquery html

我有一个文本区域,我希望用户编辑那里已有的内容,然后按Enter键以使用Ajax调用提交,但是一旦按Enter键,它就禁用到新行。谢谢

$(document).keypress(function(e) {
  if (!$(".specialClass").is(":focus")) {
    e.preventDefault();
    if (e.which == 13) {
      console.log('You pressed enter!');
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

3 个答案:

答案 0 :(得分:5)

您将使用类似的内容:

$('textarea').on('keyup keypress', function(e) {
  var keyCode = e.keyCode || e.which;
  if (keyCode === 13) { 
    e.preventDefault();

    // Ajax code here

    return false;
  }
});

答案 1 :(得分:2)

  

我希望用户编辑已经存在的内容,然后按Enter键以使用Ajax调用提交,但还希望一旦按下Enter键就禁止它进入新行

使用您的编码设计,稍微修改一下代码就可以完成这项工作:

$(document).keypress(function(e) {
  if($(".specialClass").is(":focus")){
    if(e.which == 13) {
      e.preventDefault();
      let text_value = $(".specialClass").val()
      console.log('Sending Ajax with text',text_value);
    }
  }
});

答案 2 :(得分:1)

希望这对您有所帮助。

$(document).keypress('.specialClass', function(e) {
  if (e.which == 13) {
    e.preventDefault();
    console.log('You pressed enter!');
  }
});
.specialClass {
  width: 80%;
  height: 80px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea class="specialClass">
  This is my text
  with some lines
  bye
</textarea>