如何检测“Shift Enter”并在 Textarea 中生成新行?
在表单提交中,按 Enter 通常会触发表单的提交。然而,在许多文本区域中,最好允许用户按 Shift Enter 来创建新行。
解决方案 1:修改表单提交脚本
如果您由于特定脚本,表单在按 Enter 键时提交,请找到该脚本并将其修改为仅在按 Enter 键而不按 Shift 键时提交。例如,更改此代码:
if (evt.keyCode == 13) { form.submit(); }
改为:
if (evt.keyCode == 13 && !evt.shiftKey) { form.submit(); }
解决方案 2:处理按键事件(适用于所有浏览器)
如果您无法访问表单提交脚本,您可以使用 JavaScript 来处理按键事件并在 Shift Enter 时插入换行符
function handleEnter(evt) { if (evt.keyCode == 13 && evt.shiftKey) { if (evt.type == "keypress") { pasteIntoInput(this, "\n"); } evt.preventDefault(); } } // Handle both keydown and keypress for Opera $("#your_textarea_id").keydown(handleEnter).keypress(handleEnter);
如果按下 Shift Enter,此代码将在按键时将换行符插入到文本区域中。它通过使用 keydown 和 keypress 事件来处理边缘情况。
注意:此解决方案需要外部库或自定义代码将换行符粘贴到文本区域的正确插入符位置。
以上是如何阻止表单提交并在文本区域中使用 Shift Enter 创建新行?的详细内容。更多信息请关注PHP中文网其他相关文章!