jqueryonfocustextarea,然后在keyup提交

jqueryonfocustextarea,然后在keyup提交,jquery,Jquery,您好,我正在尝试制作一个jQueryAjax提交表单,目前我正在尝试对提交表单进行限制。 我希望用户按enter键提交表单,而不是按submit按钮, 但只有当用户关注文本区域/输入字段时,他/她按enter键时才会提交 我试图制作自己的代码并在其中进行编辑,以查看哪些代码有效, 我已经找到了这段代码,但它运行得不太好:( .addformtextarea是要关注的文本区域 返回值是否为假;行为与break相同;?因为我有一个返回值为假;就在break之前 谢谢:D试试这个: $('.addfo

您好,我正在尝试制作一个jQueryAjax提交表单,目前我正在尝试对提交表单进行限制。 我希望用户按enter键提交表单,而不是按submit按钮, 但只有当用户关注文本区域/输入字段时,他/她按enter键时才会提交

我试图制作自己的代码并在其中进行编辑,以查看哪些代码有效, 我已经找到了这段代码,但它运行得不太好:(

.addformtextarea是要关注的文本区域

返回值是否为假;行为与break相同;?因为我有一个返回值为假;就在break之前

谢谢:D

试试这个:

$('.addformtextarea').keyup(function(e){
    switch (e.keyCode) {
        case 13: //enter
        //code to be 
        return false;
    }
});
$('textarea').keydown(function(e) {
    if (e.which == 13) {
        alert('You pressed enter');
        // $('your_form').submit();
    }
});
您不需要担心焦点,因为只有在输入具有焦点时,键控才会触发


中断只会中断开关,如果您使用代码执行此操作,则需要返回false以防止自动提交。

您最好绑定到输入的
keyup
事件:

$(".addformtextarea").keyup(function(e) {
    switch (e.which) {
        case 13: //enter
        //code to be 
        break;
    }
});
请注意,我使用了
which
而不是
keyCode
。这只是因为jQuery规范化事件对象以消除任何跨浏览器的不一致性

当前代码的问题是,一旦触发了
焦点
事件,则
键控
事件将绑定到
文档
,并将触发元素是否具有焦点。

尝试以下操作:

$('.addformtextarea').keyup(function(e){
    switch (e.keyCode) {
        case 13: //enter
        //code to be 
        return false;
    }
});
$('textarea').keydown(function(e) {
    if (e.which == 13) {
        alert('You pressed enter');
        // $('your_form').submit();
    }
});
如果用户在文本区域输入,那么它不会被关注吗?我真的不喜欢冗余


演示:

非常感谢!感谢您回答我的第二个问题return false不会弄乱开关/机箱?这是个好消息:)它现在可以工作了:Dconsider使用event.which而不是event.keyCode