【问题标题】:jquery popup submit should refresh parent window with struts2 action calljquery popup submit 应该使用 struts2 操作调用刷新父窗口
【发布时间】:2012-06-08 20:44:32
【问题描述】:

我有一个包含在页面中的带有模式窗口的 struts2 页面。单击按钮弹出窗口将打开,输入值并单击提交后,弹出窗口将关闭并刷新父页面。

我的 Jsp:popup 和 parent 都在同一个 jsp 中。

Main page
<form id="Parent">
<div id=container>
<table>
</table>
</div>
<input type="button" onclick="openPopup()">
</form>

<form id=popup>
   <input type="text" id="comments">
   <input type="button" id="popupBtn">
</form>

js文件

$.post("updateDB",{comments:comments}, function(){
    $('#popup').dialog('close');
    $('#container').load("refreshParent #container");
});

更新数据库和弹出关闭正在工作,但 .load 不工作,有人可以帮我看看我哪里做错了。

有两件事,refreshParent 动作没有被调用,如果被调用我也需要刷新父表单,我如何引用另一个表单的 DIV id。

更新:我忘了提到有几行复选框需要点击弹出窗口提交时提交值。

提前致谢。

【问题讨论】:

  • IMO 你调用 load 的语法是错误的。 jQuery api 说您可以附加一个事件处理程序,当元素及其子元素完全加载时将调用该事件处理程序。即使这是您尝试执行的操作,调用 load 的语法也已关闭。我认为您实际上无法使用 .load 刷新元素。如果您想刷新页面,请查看此帖子。 stackoverflow.com/questions/5404839/…
  • 不仅刷新,还需要调用 Struts2 动作 (refreshParent)。

标签: jquery ajax struts2 load


【解决方案1】:

以下代码适用于您在新窗口中打开弹出窗口。

$.post("updateDB",{comments:comments}, function(){
window.opener.location.reload();
window.close();
});

所以你可以在你的情况下尝试类似的东西

$.post("updateDB",{comments:comments}, function(){
$('#popup').dialog('close');
window.location.reload();
});

【讨论】:

  • 父窗口也应该调用一个动作。需要将此操作称为“refreshParent”
  • 你试过这个吗..这将刷新你的父窗口并关闭弹出窗口。
  • 页面已刷新,但未从 DB 获取新值。
  • 值是否正在提交给数据库?
  • 如果数据不进入数据库,您将如何获取值。正如你所说:页面刷新但没有从数据库中获取新值,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-19
  • 1970-01-01
  • 2012-07-09
相关资源
最近更新 更多