1

我的目标:

通过使其成为一项功能来清理导致同一按钮按下的多个 keydown 功能。

我的问题:

我做了很多这样的功能:

$("#username").keydown(function(event){
    if(event.keyCode == 13) {
        $('#loginbtn').click();
    };
});
$("#password").keydown(function(event){
    if(event.keyCode == 13) {
        $('#loginbtn').click();
    };
});

那个触发按钮点击按钮。它太乱了,使用了很多行。我想将这些线条组合成一个功能。我的注册表也有很多盒子。

我尝试了什么?

1. 我尝试了以下代码和其他不起作用的复制:

$("#username","#password").keydown(function(event){
    if(event.keyCode == 13) {
        $('#loginbtn').click();
    };
});

2. 我的另一个想法是使用一个类,我只是不知道这是否被认为是“正确”的方式,所以我需要意见:

$(".logintextbox").keydown(function(event){
    if(event.keyCode == 13) {
        $('#loginbtn').click();
    };
});

然后我还会在我的 html 中添加该类,以便所有登录文本框和所有注册文本框都有唯一的类“分组”它们。

我的问题/tl;博士:

如何使用多个 id 或一个类将 2 个或多个 jquery keydown 函数组合成一个函数?

4

2 回答 2

3

我建议从您的表单中委派而不是单个元素。

$("#your_form_id").on('keydown', 'input', function(event){
    if(event.keyCode == 13) {
        $('#loginbtn').click();
    };
});

这将捕获表单中所有输入上按下的键。

于 2013-03-03T22:43:44.023 回答
3

选择多个元素。$('#username, #password'). 第二个参数$是上下文。

于 2013-03-03T22:39:49.947 回答