在 AJAX 调用中调用更改方法
Call onChange method in AJAX call
我有一个下拉列表,并使用第一个下拉列表中的选定值制作另一个下拉列表。
<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>
结果 ajax jsp:
<s:select name="selectedApplication"
list="applications" listKey="name"
listValue="name" onchange="javascript:hideFilterSection();"/>
在这里我有 onchange 方法 hideFilterSection,这不是在调用...
所以我有两个下拉列表,第一个和第二个(ajax),并且基于第二个下拉值,我需要在jsp中隐藏一些东西,但是第二个下拉列表更改没有调用,请让我知道我如何实现它
提前致谢
首先,sx: 标签在 IE 10 或 11 中不起作用。如果您仍然想在IE 10 +中使用它,则需要在标头中包含meta http-equiv="X-UA-Compatible" content="IE=9"
,并且它必须是标头中的第一个元标记。它将告诉IE使用IE 9兼容模式。
其次,确保包含或与hideFilterSection()
相关的 js 文件位于查询页面而不是 ajax 结果页面中。
最后但并非最不重要的一点是,我在上面找不到任何错误。请检查您的 js 函数及其参考或您使用的 IE 版本。
我建议你避免使用旧的、有缺陷的内置 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()
函数,因为它们的作用域是分开的。
separScripts:在单独的范围内运行脚本,每个标签都是唯一的
- 未捕获错误:无法在初始化之前调用方法;
- 通过ajax从客户端调用C#方法来执行C#方法
- 如何避免在angular上多次调用方法;s ng重复
- React路由器错误-'无法调用方法'getRouteAtDepth'的未定义'
- 从window.onbeforeunload调用方法背后的代码
- 当输入字段为空时,如何在angular中调用方法
- 函数调用方法有什么用
- 多次调用方法后返回相同promise的模式
- 当从Chrome扩展动态注入JS时,从onload()内部调用方法
- 茉莉花 - 未调用方法
- jQuery如何在原型中调用方法
- ng显示“;调用方法“;不起作用
- Odoo销售点如何访问模型并使用JS调用方法
- 从React调用方法.JS州
- TinyMCE验证给出错误:无法调用方法'getContent'的未定义
- 向模板实例变量传递调用方法调用的结果时出现异常
- 如何在对象中调用方法
- 检查对话框是否为 Open 会引发“初始化前无法在对话框上调用方法”错误
- 在输入类型提交按钮上调用 C# 方法
- 通过类选择器单独调用方法