Quill.js:如何防止Newline进入输入以提交输入?

问题描述 投票:0回答:5

问题:

我正在尝试使用

quill.js创建丰富的文本围栏内容编辑元素。我很难弄清楚如何提交身体,而没有我想用来提交输入的Enter Trigger不必要的Newline。

我尝试了什么:

$(quill.editor.root).on('keydown', function (e) { if (e.keyCode === 13) { e.preventDefault(); e.stopPropagation(); submit(); } });

任何想法?
    

Quill还会在
javascript jquery newline enter quill
5个回答
8
投票
上听,并且由于它在处理程序之前已注册,它将首先开火。您可以通过键盘模块将其删除:

var keyboard = quill.getModule('keyboard');
delete keyboard.hotkeys[13];
A API已在键盘模块中添加,但尚未发布任何官方版本。

这是我在2021年所做的,以防止输入密钥,并提交编辑器内容,但在

Shift

+
enter

上允许新行:

7
投票

removeHotkey 您可以使用它来禁用Enter键:

this.editor = new Quill(this.editorContainer.nativeElement, { placeholder: 'Message', modules: { keyboard: { bindings: { shift_enter: { key: 13, shiftKey: true, handler: (range, ctx) => { console.log(range, ctx); // if you want to see the output of the binding this.editor.insertText(range.index, '\n'); } }, enter: { key: 13, handler: () => { /* submit form */ } } } } } });
    

1
投票
在这里确实有很多错误的答案。 First

:Quill.js没有稳定的2.0.0版。最新版本为1.3.7,截至2022年5月26日。请参阅:

https://github.com/quilljs/quill/releases


1
投票
秒:在官方文档中,它是书面的: “某些绑定对于防止危险的浏览器默认值(例如Enter和Backpace键)至关重要。您不能删除这些绑定以还原为本机浏览器行为。但是,由于配置中指定的绑定将在Quill的默认设置之前运行,因此您可以处理特殊情况并传播Quill。”请参阅:

https://quilljs.com/docs/modules/keyboard/#configuration

thatMeans:使用当前的Quill.js 1.3.7的唯一工作解决方案是Reed回答的一种,2021年Jun 29,2021 at 2:40.

问题,但仍然相关,并且 @jhcen的答案至少在2.0.0中已经过时了。

扁平防止羽毛笔聆听某些钥匙可以做的: var keyboard = quill.getModule('keyboard'); keyboard.bindings['Enter'] = null; keyboard.bindings['13'] = null; 但要更安全并封装了此功能,您可以将绑定暂时存储在某个地方,然后在您的代码之后还原:

var keyboard = quill.getModule('keyboard'); keyboard.bindings['Enter'] = null; usage:

function disableKey(keyName) { var tempBindings = null; var keyboard = quill.getModule('keyboard'); tempBindings = keyboard.bindings[keyName]; keyboard.bindings[keyName] = null; return tempBindings; } function reenableKey(keyName,bindings) { var keyboard = quill.getModule('keyboard'); keyboard.bindings[keyName] = bindings; }

0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.