定义按回车键时的默认按钮

Defining a default button when pushing enter key

本文关键字:默认按钮 回车 定义      更新时间:2023-09-26

我有一个Grails应用程序,它包含一个.gsp页面,上面有许多textField,几个submitToRemote按钮和几个actionSubmit按钮。当填写textField s时,我希望能够在我完成后点击enter,并让它像点击特定的submitToRemote按钮一样。目前,它的作用就好像我点击了一个特定的actionSubmit按钮,我从来没有故意指定。

我发现这个:如何触发HTML按钮,当你按下回车在文本框?。这似乎是我想要的,所以我把它改编到我的页面,但它似乎没有做任何事情。

我将放弃发布整个.gsp,但添加我认为适合这个问题的内容。

这是当前正在激活的按钮:

<br>
    <g:hiddenField name="type" value="head"/>
    <g:actionSubmit value="Get Reports" action="showReports"/>
<br>

这是我想要激活的按钮:

<g:submitToRemote value="find" url="[action: 'findCustomer']"
update="results" />

所以我所做的是为目标submitToRemote按钮和1 textField添加一个id,然后在上面链接页面的脚本周围添加<g:javascript>标签。它看起来像这样:

<g:textField name="lastName" id="inputTextBox"/>

<g:submitToRemote value="find" id="findCustomer" url="[action: 'findCustomer']"
update="results" />

<g:javascript>
 $(document).ready(function(){
   $('#inputTextBox').keypress(function(e){
     if(e.keyCode==13)
     $('#findCustomer').click();
  });
});
</g:javascript>

同样,我使用jQuery库:

<g:javascript library="jquery" />

我不确定我在这里的方法是否有缺陷,因为我确实需要它在页面上的任何10个textField s上工作。我翻遍了grails文档,没有找到任何真正匹配的…

我发现解决方案与我所拥有的非常接近。

首先,我必须添加一个id到我的submitToRemote按钮:

<g:submitToRemote value="find" url="[action: 'findCustomer']" update="results" id="submitForm"/>

然后在我的main.gsp我添加了适当的脚本:

$(document).bind("keypress", function (e) {
            if (e.keyCode == 13) {
                $("#submitForm").click();
                return false;
            }
        });

这里真正重要的是return false;,因为没有它,它会点击按钮,然后提交表单,这不是我需要的。