防止“返回”的默认行为;在 HTML5 内容可编辑字段中键入
我正在使用 localStorage & 制作基本任务列表Contenteditable,当我按 Enter 键(在 Chrome 中)时,浏览器会添加一个新行。我想阻止这种默认行为并提交任务。 jQuery 模糊会移除焦点,但仅在添加新行后仍然如此。 我尝试使用,
return false
e.preventDefault();
e.stopPropagagtion();
但没有一个起作用,有什么办法可以防止这种情况吗?
$('.taskContent').keyup(function(e) {
if(e.keyCode == 13) {
$('.task').removeClass('editing');
$('.task').children('a').fadeTo('medium', 0.5, function() {
localStorage.setItem('tasksData', tasks.innerHTML);
});
$('.taskContent').blur();
}
});
I'm making a basic task list using localStorage & Contenteditable and when I hit enter (in chrome) the browser adds a new line. I want to prevent this default behaviour and submit the task. The jQuery blur removes the focus but only after adding a new line still.
I tried using,
return false
e.preventDefault();
e.stopPropagagtion();
But none of them worked, is there anyway to prevent this?
$('.taskContent').keyup(function(e) {
if(e.keyCode == 13) {
$('.task').removeClass('editing');
$('.task').children('a').fadeTo('medium', 0.5, function() {
localStorage.setItem('tasksData', tasks.innerHTML);
});
$('.taskContent').blur();
}
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我以前遇到过这个问题,我认为问题是事件在 keydown 上触发,而不是在 return/enter/tab 和其他“特殊功能”键上触发。
尝试将其更改为
I've run into this problem before, and I think the issue is that the event fires on keydown not keyup for return/enter/tab and other "special function" keys.
Try changing it to
尝试使用 keyDown 事件,因为在 keyUp 时字符已被插入。
Try with keyDown event because by the time of keyUp the character is been inserted.