如何在 Struts 2 中使用 Ajax 发送隐藏字段?

问题描述 投票:0回答:3

这是我的代码:

<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发送隐藏字段?

ajax jsp struts2 ognl struts-tags
3个回答
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
投票

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

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

0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.