在 Struts 2 + jQuery + json 中按回车键停止提交表单

Posted

技术标签:

【中文标题】在 Struts 2 + jQuery + json 中按回车键停止提交表单【英文标题】:Stop submitting the form on pressing enter key in Struts 2 + jQuery + json 【发布时间】:2014-11-02 09:41:27 【问题描述】:

我有一个从中加载数据的。然后我需要在文本框中输入一个 ID,系统将从数据库中获取该 ID 的详细信息。我在 jQuery 中编写了一个 onChange 事件来执行该操作,效果很好。当我们点击屏幕中的任意位置或按下 TAB 键时,onChange 事件就会起作用。如果我在完成值后按 ENTER 键,则将提交表单并触发相应的操作方法。我需要停止提交表单。我已附上所需的详细信息。请告诉我阻止它的方法。

Struts.xml

<action name="*Request" method="1"
        class="com.abc.actions.RequestsAction">
        <result name="save" type="json">
            <param name="root">messageBean</param>
        </result> </action>

JSP:

<s:form action="saveRequest.action" method="post" cssClass="form-horizontal" theme="simple" role="form">..

JS:

$("#saveRequest_requestBean_memberNumber").change(function()
    alert('inside func');
    $(".alert-warning").hide();
    $(".alert-success").hide();......................

当我按下回车键时,RequestAction 类中的保存方法被调用,并且 json 响应显示在屏幕上。我尝试将输入键(代码 = 13)与我输入值和制表符的文本字段绑定。即使这样,表单也已提交。我尝试了所有可能的方法来阻止提交表单。我还使用 preventDefault() 方法来停止传播。仅供参考,saveRequest_requestBean_memberNumber 是文本字段。

【问题讨论】:

【参考方案1】:

您确定您尝试过 preventDefault() 吗? preventDefault 是为您的目的而指定的。

我的建议:

$("#saveRequest_requestBean_memberNumber").change(function(event)
      event.preventDefault();
      // do something

);

【讨论】:

我按照你说的尝试了,它没有用:(我什至尝试同样将 enter 键与 preventDefault() 绑定。它没有工作。$('#saveRequest_requestBean_memberNumber').keyup(function (e) if (e.keyCode == 13) $(this).trigger("enterKey"); ); $('#saveRequest_requestBean_memberNumber').bind("enterKey", function(event) event .preventDefault();

以上是关于在 Struts 2 + jQuery + json 中按回车键停止提交表单的主要内容,如果未能解决你的问题,请参考以下文章

Struts2-Ajax整合之Jquery版本

Java基础101 Struts2下的 jquery+ajax+struts 技术实现异步刷新功能

struts1 & jquery form 文件异步上传

struts1 & jquery form 文件异步上传

Struts 2 操作未将所需结果返回给 Jquery Ajax 调用

struts2-ajax-jQuery