您好我正在尝试制作一个jquery ajax提交表单,而且我目前正试图对提交表单进行限制。 我希望用户按Enter键提交表单而不按提交按钮, 但是只有当用户专注于textarea / input字段时,它才会在他/她按下enter时提交!
我试图制作自己的代码并在其中进行编辑以查看哪些有效, 我已经想出了这个代码,但它不能很好地工作:(
$('.addformtextarea').focus(function() {
$(document).keyup(function(e){
switch (e.keyCode) {
case 13: //enter
//code to be
break;
}
});
.addformtextarea是要关注的文本区域。
并且确实返回false;表现与休息相同; ?因为我有一个假的回报;在休息之前;
谢谢:D
答案 0 :(得分:1)
最好不要绑定输入的keyup
事件:
$(".addformtextarea").keyup(function(e) {
switch (e.which) {
case 13: //enter
//code to be
break;
}
});
请注意,我使用的是which
而不是keyCode
。这只是因为jQuery规范化事件对象以消除任何跨浏览器的不一致。
当前代码的问题在于,一旦focus
事件被触发,keyup
事件就会绑定到document
,并将触发元素是否具有焦点。< / p>
答案 1 :(得分:1)
试试这个:
$('textarea').keydown(function(e) {
if (e.which == 13) {
alert('You pressed enter');
// $('your_form').submit();
}
});
如果用户在textarea中输入,那么它不会被聚焦吗?我真的不喜欢冗余。
答案 2 :(得分:0)
试试这个:
$('.addformtextarea').keyup(function(e){
switch (e.keyCode) {
case 13: //enter
//code to be
return false;
}
});
您无需担心焦点,因为仅在输入具有焦点时才会触发。
只有在使用代码执行此操作时,您才需要返回false以阻止自动提交。