我正在将一些 jQuery 混合到 ASP.NET 页面中,但它似乎没有做它应该做的事情。我正在尝试重新分配向上和向下箭头并输入文本框的键,以便用户可以在列中上下导航(就像在 Excel 中一样)。我已将事件处理程序设置为正常并且可以正常工作,但我无法使以下部分正常工作:
e.preventDefault;
e.stopPropogation;
特别是使用回车键时,即使输入了这两行,它仍然会提交表单。我可以让它工作的唯一方法是使用以下内容:
event.cancelBubble = true;
event.returnValue = false;
但是从我读到的内容来看,您不应该使用它们,因为这两个 jQuery 方法是独立于浏览器的。任何有助于理解这一切的帮助都会很棒:-)
更新 我将处理程序放在这样的 block 中:
//handles the up/down arrow behaviour of the score boxes
$('.gScoreTB').keydown(function (e) {
if (event.keyCode == 13) {
event.cancelBubble = true;
event.returnValue = false;
}
});
这只是一个简单的示例,用于尝试立即停止 Enter 键行为:一旦确定,将为其他箭头添加 keyCode == 38 和 40。
最佳答案
preventDefault
和 stopPropagation
都是函数,所以你应该这样做:
e.preventDefault();
e.stopPropogation();
但是返回 false
更容易(与同时调用两者相同):
//handles the up/down arrow behaviour of the score boxes
$('.gScoreTB').keydown(function (e) {
if (e.keyCode == 13) {
return false;
}
});
关于javascript - ASP.NET jQuery 停止事件传播和冒泡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16409864/