2012-03-09 46 views
1

我想调用submitformFinal(this.form);这是一个客户端验证。但问题是,html:image属性直接调用struts,所以服务器端验证发生在调用submitformFinal(this.form)之前。 如果submitformFinal失败,服务器端验证不应该发生,但在这种情况下html:image直接调用struts动作类....任何建议?<html:image直接调用struts action class

现在我的代码是: - <html:image
src='<%=contextPath + "/img/save_orange.gif"%>' onclick="javascript:submitformFinal(this.form); "/>

+0

显示changeAction,checkMultiSelects和submitFormFinal JavaScript函数。看起来可能有什么东西在你认为是之前提交表单。另外,你不是从JavaScript调用一个struts动作。 – DwB 2012-03-09 10:06:23

+0

@DwB ...编辑了我的问题....希望它能让它更清晰 – rcky 2012-03-09 10:21:16

+0

img标记不会调用任何东西。它也没有提交你的表单。显示submitformFinal()源。问题似乎可能在其中。 – DwB 2012-03-09 10:32:22

回答

1

怎么样从submitformFinal()返回值:

<html:image src='<%=contextPath + "/img/save_orange.gif"%>' 
      onclick="return submitformFinal(this.form);"/> 

现在,如果submitformFinal()回报false它不会提交,如果返回true那么它将被提交。

更新:

看到你的下一个问题后,这里是我的想法。

1)您不应该使用<html:image>来提交表单。 <html:submit>是正确的提交按钮标记。我会建议将<html:image>更改为<html:submit>。 U可以通过styleId,styleClass属性将图像添加到按钮。无需调用点击按钮。它只会在您点击时提交表单。

2)现在在​​3210标签这样添加onSubmit

<html:form action="someAction.do" onSubmit="return submitformFinal();"> 

这会像所期望我猜。

+0

@tusar............thanks ......it solved my problem – rcky 2012-03-09 10:51:14

+0

I am glad it worked :) I also learnt about 。 – tusar 2012-03-09 10:52:50

+0

@tusar .....但我有一个问题,以及.......当submitformFinal()返回false后,如果我点击保存按钮,然后登录页面打开....任何想法? – rcky 2012-03-09 14:52:01