我有一个下拉列表,并使用第一个下拉列表中的选定值创建另一个下拉列表。
<s:select name="selectedList" list="list" listKey="name" listValue="name"
onchange="showList(this);return false;"/>
<s:url id="server_url" action="cls/ListAction"/>
<sx:div showLoadingText="false" id="details" href="ListAction" theme="ajax"
listenTopics="show_server_list" formId="config_frm"><sx:div>
reult ajax jsp:
<s:select name="selectedApplication"
list="applications" listKey="name"
listValue="name" onchange="javascript:hideFilterSection();"/>
这里我有onchange方法hideFilterSection,这不是调用...
所以我有两个下拉列表,第一个和第二个(ajax),并根据第二个下拉值我需要在jsp中隐藏一些内容,但第二个下拉列表onchange没有调用,请让我知道如何实现它
提前致谢
答案 0 :(得分:2)
首先,sx:标签在IE 10或11中不起作用。如果你仍想在IE 10+中使用它,那么你需要在标题中有meta http-equiv="X-UA-Compatible" content="IE=9"
,它必须是第一个元标记在标题中。它会告诉IE使用IE 9兼容模式。
其次,确保包含hideFilterSection()
或与{{1}}相关的js文件位于查询页面中,而不是ajax结果页面。
最后但并非最不重要的是,我找不到上面的任何错误。 Plz检查你的js功能及其参考或你使用的IE版本。
答案 1 :(得分:1)
我建议你避免使用旧的,错误的内置Dojo版本,并迁移到Struts2-jQuery插件,甚至更好地使用原始jQuery。
但是回答你的问题,你错过了executeScripts
参数,默认情况下是false
。
executeScripts :将执行所提取内容中的Javascript代码
这应该有效:
<sx:div executeScripts = "true"
showLoadingText = "false"
id = "details"
href = "ListAction"
theme = "ajax"
listenTopics = "show_server_list"
formId = "config_frm" >
</sx:div>
请注意,您需要将separateScripts
设置为false
(默认为true
),以便从结果JSP中访问主JSP中定义的javascript函数,否则您需要在结果JSP中定义hideFilterSection()
函数,因为它们的作用域是分开的。
separateScripts :在单独的范围内运行脚本,每个标记都是唯一的