【问题标题】:How can I maintain the checkbox state on a page that is refreshed by Ajax?如何维护由 Ajax 刷新的页面上的复选框状态?
【发布时间】:2010-10-17 19:42:43
【问题描述】:

我的应用程序中有一个 html 表,它显示了系统中运行的各种作业的状态。每个作业都有一个与之关联的状态,例如用于运行作业的漩涡状 gif。新作业旁边有一个复选框,允许用户选择和启动相关作业。

该表是一个 struts2 自动刷新的 div (sx:div),它每隔几秒刷新一次以反映作业当前发生的情况。

问题是当 div 刷新时,我失去了复选框的状态。

有没有一种优雅的方式来维护它们的状态?我可以选择在完成 ajax 刷新后使用标签中内置的 dojo 主题系统调用一些 javascript,但我不确定什么是处理它的最佳方法。

【问题讨论】:

    标签: ajax dojo checkbox struts2


    【解决方案1】:

    我对 struts 不是很熟悉,所以请接受我的建议。

    我看到有两种方法可以解决这个问题。

    第一个(可能也是最简单的)是向复选框添加一个事件,该事件将选中状态存储在数组或对象 onchange 中。然后,在从 ajax 刷新回调时,恢复这些状态。

    第二种方法需要将 ajax 刷新作为一个帖子执行,以便将复选框提交到服务器,或者具有一个单独的 ajax 操作,该操作在选中复选框时触发。使用这些选项中的任何一个,ajax 刷新都可以在渲染时“知道”哪些复选框被渲染为选中状态。

    如果您决定使用第一,javascript 并不是很困难,尤其是如果您碰巧使用了一个好的库(jquery 等)。

    【讨论】:

    • 我尝试使用 javascript 重置复选框,但我只是遇到了 struts2 不执行返回的 javascript 片段的问题。最后我只是提交了复选框状态并在返回片段的jsp中重置它们。更简单,更健壮。感谢乔尔的提示。
    猜你喜欢
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 2017-09-13
    相关资源
    最近更新 更多