防止新行,但允许在Textarea(jQuery)中输入(提交)



我有一个<textarea>,我希望用户编辑已经存在的内容,然后按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>

您将使用以下内容:

$('textarea').on('keyup keypress', function(e) {
  var keyCode = e.keyCode || e.which;
  if (keyCode === 13) { 
    e.preventDefault();
    // Ajax code here
    return false;
  }
});

我希望用户编辑已经存在的内容,然后按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);
    }
  }
});

希望这对您有帮助。

$(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>