如何强制Firefox发送隐藏字段?

时间:2014-03-28 12:57:07

标签: java firefox parameters struts2 ognl

这是我的代码:

<s:form
     id="deployChapters%{#chapterTree.nodeId}" 
     action="%{deployChapterUrl}"
     theme="simple"
     method="POST">
     <s:hidden name="nodeId" value"%{#chapterTree.nodeId}" />
</s:form>

我使用Ajax提交此表单。使用Firefox时,不会发送隐藏字段nodeId。它适用于Chrome或IE。

如何让FF发送隐藏字段?

3 个答案:

答案 0 :(得分:1)

向表单添加一个提交按钮,更改id属性,以便使用jQuery轻松选择它并附加处理程序

<s:form
     id="deployChaptersForm" 
     action="%{deployChapterUrl}"
     theme="simple"
     method="POST">
     <s:hidden name="nodeId" value"%{#chapterTree.nodeId}" />
     <s:submit/>
</s:form>
<script type="text/javascript"> 
 // Attach a submit handler to the form
 $("#deployChaptersForm").submit(function(event) {
   //Stop form from submitting normally
   event.preventDefault();
   //Get some values from elements on the page:
   var $form = $(this),
   value = $form.find("input[name='nodeId']").val(),
   url = $form.attr("action");
   //Send the data using post
   var thePost = $.post(url, {nodeId: value});
   //Handle results in data
   thePost.done(function(data) {
    alert(data);
   });
 });
</script>

答案 1 :(得分:1)

最后,这是我提出的解决方案:

  • 我检测表单的提交时间,并以编程方式将隐藏字段添加到表单中。

答案 2 :(得分:0)

Struts / JSP代码(即服务器端代码)不依赖于客户端浏览器来呈现HTML。

所以,这是你的Javascript函数,它发送Ajax请求(post或get),其中包含基于html表单数据的数据,这有问题。

请检查/调试您的Javascript代码以修复它。