当函数返回false时如何在strut2 <sx:submit onClick="return myfunction(a, b)" />中停止提交表单

Posted

技术标签:

【中文标题】当函数返回false时如何在strut2 <sx:submit onClick="return myfunction(a, b)" />中停止提交表单【英文标题】:How to stop in strut2 <sx:submit onClick="return myfunction(a, b)" /> from submitting form when function returns false 【发布时间】:2012-07-19 21:02:24 【问题描述】:
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>


 <html>
 <head>
  <sx:head cache="true" />
<script>
   myfunction(a, b)
  
      if ( a> b) 
      return true;
      else
      return false;   


  
 </script>

</head>

....

 <s:form  action="saveXXXX"  >

  .... fields....                    

  <s:submit onclick="return myfunction(a, b);" />  //THIS ONE WORKS - NON AJAX
  <sx:submit onclick="return myfunction(a, b);" /> //Using sx ajax tag 
<sj:submit onclick="return myfunction(a, b);" id="formSubmit1" targets="formResult"  value="AJAX Submit" button="true" />  //if using Jquery Plugin ajax tag

 //how to stop form submittal if function returns false.    

  </s:form> 

该表单使用 s:submit .. 工作,但现在我尝试使用 sx:submit ... 或 jquery 的 sj:submit ... 进行 ajaxfy 处理

我想根据函数返回的内容使用 AJAX 有条件地提交表单。

怎么做?

【问题讨论】:

你在处理一些旧的 struts2 版本/应用程序吗? Dojo 标签已弃用且不再受支持。 即使切换到 JQuery 插件。所以 .. 现在 我想根据函数的返回值有条件地提交表单 升级 - 已弃用。 【参考方案1】:

不要使用提交按钮,而是使用简单的按钮

<s:form  action="saveXXXX"  name="myForm">
    <input type="button" onclick="myfunction(a, b);"/>
</s:form>

在你的函数中

function myfunction(a, b)
if ( a> b) 
      document.myForm.submit();

【讨论】:

按照您的建议执行非 AJAX 表单提交。我想使用 AJAX 我想使用 AJAX 有条件地提交表单 基于函数返回的内容。 在这种情况下,请使用$.post 或显示此普通按钮并隐藏或为“”提供负边距,如果条件为真,则在函数中触发单击此@ 987654324@ 我想不花招就做,它是如此基本和普遍。 总之,onClick 事件在 sj:submit 上没有按预期工作。解决这个问题的一种方法是让按钮 s:submit 和 sj:submit(隐藏)然后调用 s:submit 上的验证函数,如果为真,则触发 sj:submit 按钮的 onClick 事件。我尝试了很多方法,如果有人知道更好的方法,请告诉我。【参考方案2】:

您是否尝试过使用 'onsubmit="return myFunction();" ' 标签内的属性?

<s:form action="actionName" onsubmit="return myFunction();">
...
</s:form>

【讨论】:

以上是关于当函数返回false时如何在strut2 <sx:submit onClick="return myfunction(a, b)" />中停止提交表单的主要内容,如果未能解决你的问题,请参考以下文章

在excel表格中FALSE和TRUE代表啥意思?是否否与是的意思?

Strut2开发经验总结

当 mkdir 从 PHP 失败时如何找到原因?

具有嵌套 forEach 和 for 循环的函数不会返回 false

如何使用IF函数及iserror函数

php中的常用函数