2012-07-31 213 views
3

对于发布类似于SO近100个问题的问题,我很抱歉。我读了很多,尝试了几个解决方案,但无法解决我的问题,或者完全将答案与我的问题联系起来。通过提交“点击”触发器提交两次HTML表单

  1. 我有一个form与一个动作,键入帖子。
  2. 我有一个<input type="submit">在这种形式。
  3. 我需要通过触发此输入上的'click'来提交此表单。我通过$('#imageUploadSubmit').click()来做什么;

我不应该绕过'点击'这个提交按钮,因为还有其他与此相关的事件,这些事件是必不可少的,它们来自Struts jQuery。因此我不能直接提交表格。

问题:我的表单action(uploadImage)被调用两次。而我无法阻止它。

相关一块JSP的:

<s:form id="image-upload-form" action="uploadImage" method="post" enctype="multipart/form-data"> 
    <s:file name="userImage" label="User Image" id="userImageFile" /> 
    <input type="hidden" id="idForUpload" name="idForUpload" value="<s:property value="imageUploadReqAttrib.imageName" />" /> 
    <sj:submit id="imageUploadSubmit" value="Select Image" targets="previewImageDiv" 
     indicator="indicator" onBeforeTopics="before" onCompleteTopics="complete" style="display:none;"/> 
</s:form> 

和生成的HTML(相关元素)

<form id="image-upload-form" name="image-upload-form" action="/foo/uploadImage.action" method="post" enctype="multipart/form-data"> 
     <input type="file" name="userImage" value="" id="userImageFile"></td> 
     <input type="hidden" id="idForUpload" name="idForUpload" value="1371711900.jpg"> 
     <input type="submit" id="imageUploadSubmit" value="Select Image" style="display:none;"> 
</form> 

有没有通过我能找出被触发的所有事件的方式然后点击?在Chrome Inspector中?提琴手?

我会很感激任何指针。谢谢。

回答

0

谷歌搜索更多后,这似乎是什么问题:所有版本> 2.1.0的struts2-jquery-plugin都有这个问题。现在,我不确定问题是我使用插件的方式,还是实际上是一个错误。社区中一个开放的bug让我觉得这是一个错误。

所以,我从struts2-jquery-3.3移动到struts2-jquery-2.1.0:

+0

有没有解决方案?我的意思是如何处理? – arjuncc 2012-11-15 13:28:03