簡體   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