gpt4 book ai didi

javascript - 检测 jQuery 中的 Textarea 对象

转载 作者:行者123 更新时间:2023-11-28 13:36:37 25 4
gpt4 key购买 nike

当客户填写我们的表单时,我有一些 jQuery 来抑制回车:

$('form.eForm:not(.suppress-submit-on-enter-key-disabled) :not(:button, :submit)').keypress(function(e){
if(e.which == 13){
// Cancel submit event
e.preventDefault();
// Give focus to next input element
$(':input').eq($(this).index(':input') + 1).focus();
}
});

但是,它还成功地抑制了我们评论框中的回车符。

添加一个 textarea 检查器似乎很简单,就像现有代码必须检查 :not (:button, :submit):

$('form.eForm:not(.suppress-submit-on-enter-key-disabled) :not(:button, :submit, :textarea)').keypress(function(e){
if(e.which == 13){
// Cancel submit event
e.preventDefault();
// Give focus to next input element
$(':input').eq($(this).index(':input') + 1).focus();
}
});

哎呀! :not (:button, :submit, :textarea) 不起作用,因为似乎 textarea 没有为 jQuery 的这一部分定义。

其他人如何检测这些 TextArea 控件?

更新:

在这里发布答案的人之一找到了解决方案。

生成我们所有表单的 eForm 类以某种方式捕获了这一点。

我和经理花了几个小时才解决这个问题,但最终我所需要做的就是只处理来自 Input 控件的事件。

这是我们的最终结果:

$('form.eForm:not(.suppress-submit-on-enter-key-disabled) :input:not(:button, :submit, textarea)').keypress(function (e) {
if(e.which == 13){
// Cancel submit event
e.preventDefault();
// Give focus to next input element
$(':input').eq($(this).index(':input') + 1).focus();
}
});

特别感谢Khawer Zeshan提供那个 fiddle 。它向我证明我的代码存在更深层次的错误。

最佳答案

为什么不使用 id 表示单个 textarea 并使用 class 名称表示多个选择器?

仅适用于一个textarea:

$('#textareaid').keypress(function(e){
if(e.which == 13){
// Cancel submit event
e.preventDefault();
// Give focus to next input element
$(':input').eq($(this).index(':input') + 1).focus();
}
});

对于多个字段,请使用类名称并为这些字段应用相同的类:

$('.textareaClass').keypress(function(e){
if(e.which == 13){
// Cancel submit event
e.preventDefault();
// Give focus to next input element
$(':input').eq($(this).index(':input') + 1).focus();
}
});

<强> FIDDLE

关于javascript - 检测 jQuery 中的 Textarea 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20907251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com