javascript - 在 contenteditable div 中不允许超过 1 个字符

标签 javascript jquery html css

目前我正在处理一个有填字游戏的页面。因此,我处于停止在内容可编辑 div 中键入多个字符的情况。请注意,这是用于 epub 开发的。因此,我不能使用输入标签。请在这方面指导我。

我尝试在 div 本身中遵循脚本。但它不允许我在使用退格键后键入任何字符。

onkeypress="return (this.innerText.length >= 1 ? false : true )"

从那以后,我要在另一天拜访客户。如果您解决了这个问题,那就太好了。

提前致谢...

最佳答案

要允许其他控制键,您应该改为处理 onkeydown 事件,但请注意,在触发 onkeydown 时,键入的键尚未附加到文本域。因此,我们不会检查文本长度是否为 1,而是检查它是否为 0。

$('div').keydown(function(e){
   return $.inArray(e.which, [8, 46, 37, 39]) > -1 || $(this).text().length == 0;
});

8Backspace键码,46Delete键码,3739 分别是 Left arrowRight arrow 的键码。

Demo.

关于使用return false; 取消事件的子注释,通常我们应该使用e.preventDefault() 因为return false;也意味着 e.stopPropagation() 被调用。

关于javascript - 在 contenteditable div 中不允许超过 1 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24217420/

相关文章:

Javascript函数到类div?

javascript - 动态图像中的居中文本

javascript - 放置在弹出窗口内的 Web 用户控件的按钮单击事件未触发 - Asp.net Webforms

JQUERY:将 div 大小调整为窗口宽度

Jquery - 调整大小或拖动内部有 iframe 的 DIV

javascript - 如何将 orderCells 设置到数据表的中间行?

javascript - 更改下拉菜单中复选框的位置

javascript - 谷歌授权弹出窗口卡在 chrome 扩展中

javascript - 使用js更新表单字段但未在提交的数据中显示

javascript - 无法解析我的 Phonegap 项目中的 JSON 字符串错误