作者:手机用户2402852387 | 2023-09-01 11:20
在Firefox中使用contentEditable时,是否可以通过按Enter或shift + enter来阻止用户插入段落或换行符?
1> kamens..: 您可以将事件处理程序附加到contentEditable字段的keydown或keypress事件,如果keycode将自身标识为enter(或shift + enter),则取消该事件.
当焦点位于contentEditable字段中时,这将完全禁用enter/shift + enter.
如果使用jQuery,例如:
$("#idContentEditable").keypress(function(e){ return e.which != 13; });
...将返回false并取消输入时的按键事件.
请注意,将带换行符的文本复制粘贴到contentEditable区域时,这将不起作用.
2> luschn..: 这可以通过Vanilla JS实现,同样的努力:
document.getElementById('idContentEditable').addEventListener('keypress', (evt) => {
if (evt.which === 13) {
evt.preventDefault();
}
});
你不应该使用jQuery来做最简单的事情.此外,您可能希望使用"key"而不是"which":https://developer.mozilla.org/en-US/docs/Web/Events/keypress
我同意,并且FWIW我没有在提出这个问题的项目中使用JQuery.它确实让我烦恼,因为JavaScript上的答案通常假设每个人都使用JQuery,但是OTOH初学者绝对有可能使用JQuery,其他人都能够翻译答案以使用他们喜欢的库或缺少它们:).
3> frogatto..: 添加以下CSS规则以隐藏 换行符.这只是一个样式设置,您应该添加一些事件处理程序以防止 插入换行符:
.your_editable br {
display: none
}
Chrome也会插入一些`
`,因此可能会在此之前添加`.your_editable*{display:inline}`.
4> Patrick Desj..: 如果您正在使用JQuery框架,则可以使用on 方法设置它,这将使您在所有元素上具有所需的行为,即使最近添加了此元素也是如此.
$(document).on('keypress', '.YourClass', function(e){
return e.which != 13;
});
5> amwinter..: 另一种选择是允许输入中断但在模糊时删除它们.这具有处理粘贴内容的优点.您的用户会喜欢它还是讨厌它(取决于您的用户).
function handle_blur(evt){
var elt=evt.target; elt.innerText=elt.innerText.replace(/\n/g,' ');
}
那么,在html中:
editable text
6> Maor Oz..: 除了添加换行符之外,浏览器还会添加其他标签和样式(当您粘贴文本时,浏览器还会附加您的粘贴文本样式).
以下代码涵盖了所有内容.
按Enter键时,不会添加换行符.
粘贴文本时,浏览器添加的所有元素都将从文本中删除.
$('[contenteditable]').on('paste', function(e) {
//strips elements added to the editable tag when pasting
var $self = $(this);
setTimeout(function() {$self.html($self.text());}, 0);
}).on('keypress', function(e) {
//ignores enter key
return e.which != 13;
});
点击此处查看实时示例
推荐阅读
如何解决《如何清除C中数组的所有元素?》经验,为你挑选了1个好方法。 ...
[详细]
如何解决《如何使用ajaxGET或POST方法将过去的数据发送到amazonlambdanode.js函数》经验,为你挑选了1个好方法。 ...
[详细]
如何解决《使用Gmail从Excel发送电子邮件》经验,为你挑选了1个好方法。 ...
[详细]
如何解决《Laravel5渴望加载限制》经验,为你挑选了2个好方法。 ...
[详细]
如何解决《从API-viewDidLoad,viewWillAppear或viewDidAppear加载数据的最佳位置是什么?》经验,为你挑选了1个好方法。 ...
[详细]
如何解决《Laravel5.1EloquentORM随机返回不正确的关系-*主要更新*》经验,为你挑选了0个好方法。 ...
[详细]
如何解决《没有给出与所需的形式参数相对应的参数-.NET错误》经验,为你挑选了1个好方法。 ...
[详细]
如何解决《如何使<td>响应》经验,为你挑选了1个好方法。 ...
[详细]
如何解决《如何从IntelliJIDEA向远程Spark集群提交代码》经验,为你挑选了0个好方法。 ...
[详细]
如何解决《"控制到达非空函数的结束",在枚举类型上使用完全处理的情况切换》经验,为你挑选了1个好方法。 ...
[详细]
如何解决《比较数组对象是否相等》经验,为你挑选了1个好方法。 ...
[详细]
如何解决《在PythonPandas中连接大量CSV文件(30,000)》经验,为你挑选了1个好方法。 ...
[详细]
如何解决《在"if"中遇到"return"时不返回值的方法》经验,为你挑选了1个好方法。 ...
[详细]
如何解决《NoReverseMatchDjango教程1.8第4章》经验,为你挑选了1个好方法。 ...
[详细]
如何解决《如何在按钮内居中对齐离子图标?》经验,为你挑选了1个好方法。 ...
[详细]
如何解决《将大量自定义数据添加到jpg图像文件中》经验,为你挑选了0个好方法。 ...
[详细]
如何解决《JavaServer包装器(tanuki)-启动失败:等待JVM发出的信号超时》经验,为你挑选了1个好方法。 ...
[详细]
如何解决《特定键的映射中的值的总和》经验,为你挑选了1个好方法。 ...
[详细]
如何解决《像LmaxDisruptor一样可以批量观察》经验,为你挑选了1个好方法。 ...
[详细]
如何解决《woocommercewebhooks没有解雇》经验,为你挑选了0个好方法。 ...
[详细]
手机用户2402852387
这个屌丝很懒,什么也没留下!