javascript - 提交时动态更改行数

标签 javascript jquery forms

我需要你们的帮助。 我使用的是 textarea,它会通过更改行数自动扩展。 在我的项目中,页面不会重新加载并在提交表单后保持原样。我需要在提交时动态更改行数 (2)。 也可以通过回车发送表格。所以我需要在按下按钮或按下 Enter 键后更改行数。 我已经编写了项目中表单的粗略草图,以便您可以对其进行测试:https://codepen.io/C3La-NS/pen/NagZbr

<form id="NewMessage">
  <textarea id="shoutbox-comment" data-min-rows="2"></textarea>
  <button id="send_message" type="submit" onclick="chatSubmit();">send</button>
</form>

JS:

    // auto-resizing textarea
const textarea = document.getElementById("shoutbox-comment");

textarea.addEventListener("input", function() {
  this.rows = 2; // Erm...
  this.rows = countRows(this.scrollHeight);
});

function countRows(scrollHeight) {
  return Math.floor(scrollHeight / 20); // 20px = line-height: 1.25rem
}

// submit by Enter
$(document).ready(function() {
  $("#shoutbox-comment").on("keypress", function(event) {
    if (event.keyCode == 10 || event.keyCode == 13) {
      event.preventDefault();
      chatSubmit();
    }
  });
});

// submit FORM
function chatSubmit() {
  $("#NewMessage").submit();
}

谢谢!

最佳答案

jQuery 提交接受在提交之前触发的回调作为参数,因此,您可以:

$("#NewMessage").submit(function( event ) {
  event.preventDefault();
  $('#shoutbox-comment').attr('rows', 2);
});

关于javascript - 提交时动态更改行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46503731/

相关文章:

javascript - 在单选按钮上使用 jQuery live 方法

javascript - 为什么我不能使用 jquery 访问 ajax 提取的内容

java - 将 jsp 多部分/表单数据表单中的输入值发送到 servlet

javascript - 使用 Javascript 的等高列

javascript - 表单控件不可聚焦

javascript - 使用纬度/经度的谷歌地图方向

javascript - 通过 $.ajax 和 $.get/$.post 填充关联数组的差异

javascript - 如何将工具提示添加到表头

javascript - JQuery 表单提交到 aspx -- 表单集合为空

javascript - 如何使用 JavaScript 在 HTML 中随机更改背景颜色?