繁体   English   中英

当不是默认表单操作时,如何使用JavaScript或jQuery通过Enter键提交表单

[英]How do I use JavaScript or jQuery to submit a form by using the Enter key, when not the default form action

我有一个页面,其中包含对用户显而易见的三个“表单”。 在后台,页面只有一个表单,使用html:form作为控制整个页面的JSP对象。 当用户单击用于单个提交按钮的图像时,它将触发onClick()函数,该函数绕过表单的操作并执行另一个操作。

<html:form action="foo.do">
    <html:text property="name" styleClass="input" />
    <img src="bar.jpg" onClick="myFunction();" />
</html:form>

<script>
    function myFunction(){
        document.forms[0].action = "realPage.do";
        document.forms[0].submit();
    }
</script>

该脚本可以正常工作,而不是将用户发送到默认的“ foo.do”,而是发送给函数的目标地址(realPage.do)

但是,问题是我的用户希望仅通过在想要提交的特定“表单”字段中的任何一个字段中单击键盘上的“ Enter”就可以提交表单。 如何使用JavaScript或jQuery识别用户所在的“表单”,从而识别用户所在的输入字段,并检测按下“ Enter”键并使用与按钮相同的功能提交?

这应该可以解决您的问题

$(document).ready(function(){
    $("input").keyup(function (e) {
        if (e.keyCode == 13) {
            // Submit your form here
        }
    });
});

我可能会逮捕表单提交并检测哪个元素具有焦点。 诸如此类,每个伪表单都有一个已标识的包装器元素:

$(function() { // document.ready
    $('#myform').submit(function(event) {
        event.preventDefault();

        if ( $('#pseudoForm1 input').is(':focus') ) { ... }
        else if ( $('#pseudoForm2 input').is(':focus') ) { ... }
        else if ( $('#pseudoForm3 input').is(':focus') ) { ... }
    });
});

您可以从这里开始-

$('input').keypress(function(e) {
    if(13 == e.keyCode) {
        var closestForm = $(this).closest('form');
        $(closestForm).submit();
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM