gpt4 book ai didi

javascript - 在选择更改 Struts2 时更新表单

转载 作者:行者123 更新时间:2023-11-28 01:08:12 25 4
gpt4 key购买 nike

我在表单之外有 select 标签,在 select 的 onchange 事件中,我发布了 anchor 标签的 ListenTopics 并以 json 形式获取结果,这是正确的,但它用我需要更新表单的 json 数据替换表单。知道这里可能出了什么问题或者有其他方法可以做到这一点。

<script type="text/javascript">
function reloadForm() {
$.publish('reloadFormList');
}
</script>

<div id="body" style="text-align: center;width: 100%;">
<s:form id="formSelect" style="margin-top:20px;">
<s:select list="model.classList" name="model.selectedID"
listKey="classID" listValue="className" headerKey="-1"
headerValue="" theme="simple" label="Class"
style="margin-bottom:10px;" onchange="reloadForm();" />
<sj:a formIds="formSelect" href="getEmailSett" targets="form"
style="display:none;" listenTopics="reloadFormList"></sj:a>
</s:form>

<s:form id="form">
<s:checkbox label="OPtion1" title="OPtion1" name="model.chk_option1"
style="margin-top:20px;"></s:checkbox>
<s:checkbox label="OPtion2" title="OPtion2" name="model.chk_option2"
style="margin-top:20px;"></s:checkbox>
<sj:submit id="formSubmit" href="mysubmit" value="Update"
indicator="indicator" button="true" />
</s:form>
</div>

最佳答案

我只是告诉你你做错了什么,因为很多问题都以相同的主题发布。一个常见的错误是使用 targets 来获取 json 结果。 targets 应该用于加载 html/javascript 内容。如果你想处理json结果,那么你不应该写这么难看的代码

<sj:a formIds="formSelect" href="getEmailSett" targets="form"
style="display:none;" listenTopics="reloadFormList"></sj:a>

reloadForm() 中,您应该通过 $.ajax()$.getJSON() 编写普通的 ajax 调用,并在用于修改 DOM 的回调成功函数。

如果您仍然继续使用targets,那么您应该将触发操作的结果更改为dispatcher以返回html/javascript内容。

关于javascript - 在选择更改 Struts2 时更新表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24803912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com