我有一点HTML
<input id="legalWellName" readonly data-bind="value: LEGAL_WELL_NAME" class="welllabel" />
和这个脚本:
$('#legalWellName').keyup(function (e) {
if (e.stopPropagation) { e.stopPropagation(); }
if (e.cancelBubble != null) { e.cancelBubble = true; }
});
$('#legalWellName').keydown(function (e) {
if (e.stopPropagation) { e.stopPropagation(); }
if (e.cancelBubble != null) { e.cancelBubble = true; }
});
$('#legalWellName').keypress(function (e) {
if (e.stopPropagation) { e.stopPropagation(); }
if (e.cancelBubble != null) { e.cancelBubble = true; }
});
但是,如果我点击legalWellName输入并点击BACKSPACE,它就好像我在浏览器(IE9)中点击了BACK一样。 BACKSPACE有什么特别之处吗?我已经设置了readonly,所以没有其他键有任何影响(我甚至不需要stopPropagation逻辑)。如何防止BACKSPACE生效?
答案 0 :(得分:1)
防止冒泡只能防止事件在DOM中从元素冒泡到另一个元素。您似乎更愿意阻止 Backspace 的默认操作:
if (e.preventDefault) {
e.preventDefault();
}
e.returnValue = false;
请注意,您可以安全地将属性添加到e
而不进行特征检测。