0

我在 ASP.NET 页面中使用了一些 jQuery,但它似乎没有做它应该做的事情。我正在尝试重新分配向上和向下箭头并输入文本框的键,以便用户可以在列中上下导航(如在 Excel 中)。我的事件处理程序设置正常并且可以正常工作,但我无法让以下部分正常工作:

e.preventDefault;
e.stopPropogation;

特别是使用 enter 键,即使有这两行,它仍然会提交表单。我可以让它工作的唯一方法是使用以下内容:

event.cancelBubble = true;
event.returnValue = false;

但是从我读过的内容来看,您不应该使用它们,因为这两个 jQuery 方法是独立于浏览器的。任何帮助理解这一切都会很棒:-)

更新 我在这样的块中有处理程序:

    //handles the up/down arrow behaviour of the score boxes
    $('.gScoreTB').keydown(function (e) {

        if (event.keyCode == 13) {
            event.cancelBubble = true;
            event.returnValue = false;
        }

    });

只是一个简单的例子来尝试停止此时的输入键行为:一旦确定,将为其他箭头添加 keyCode == 38 和 40。

4

1 回答 1

3

preventDefault和都是stopPropagation函数,所以你应该这样做:

e.preventDefault();
e.stopPropogation();

但它更容易return false(这与调用两者相同):

//handles the up/down arrow behaviour of the score boxes
$('.gScoreTB').keydown(function (e) {

    if (e.keyCode == 13) {
        return false;
    }

});
于 2013-05-07T01:37:34.410 回答