首頁 >web前端 >css教學 >如何使用 jQuery 或 JavaScript 偵測「Shift Enter」並在文字區域中建立新行?

如何使用 jQuery 或 JavaScript 偵測「Shift Enter」並在文字區域中建立新行?

Linda Hamilton
Linda Hamilton原創
2024-12-06 01:51:09370瀏覽

How to Detect

使用jQuery 偵測「Shift Enter」並在文字區域中產生新行

在Web 表單中,在文字區域中按「 Enter”通常會提交表格。但是,您可能想要實現不同的行為,例如在按下「Shift Enter」時建立新行。

jQuery 解決方案

$("#textarea_id").on("keydown", function(evt) {
  if (evt.keyCode == 13 && evt.shiftKey) {
    // Insert a newline character
    if (evt.type == "keypress") {
      pasteIntoInput(this, "\n");
    }
    // Prevent form submission
    evt.preventDefault();
  }
});

function pasteIntoInput(el, text) {
  el.focus();
  if (typeof el.selectionStart == "number" && typeof el.selectionEnd == "number") {
    var val = el.value;
    var selStart = el.selectionStart;
    el.value = val.slice(0, selStart) + text + val.slice(el.selectionEnd);
    el.selectionEnd = el.selectionStart = selStart + text.length;
  } else if (typeof document.selection != "undefined") {
    var textRange = document.selection.createRange();
    textRange.text = text;
    textRange.collapse(false);
    textRange.select();
  }
}

純 JavaScript 解決方案

var textarea = document.querySelector("#textarea_id");

textarea.addEventListener("keydown", function(evt) {
  if (evt.keyCode == 13 && evt.shiftKey) {
    if (evt.type == "keypress") {
      pasteIntoInput(this, "\n");
    }
    evt.preventDefault();
  }
});

以上是如何使用 jQuery 或 JavaScript 偵測「Shift Enter」並在文字區域中建立新行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn