用js操作struts2标签出现的有关问题
用js操作struts2标签出现的有关问题
日期:2014-05-16 浏览次数:20232 次
用js操作struts2标签出现的问题
使用struts2标签会带来很多便利,但在用js控制(定位及获取属性值等)struts2标签时要特别注意,因为struts2标签在页面最终显示时,实际上还是转换为html标签来显示,js(包括jquery和prototype等js框架)也是对基本的html标签来定位及获取其属性值;若用js操作html标签的方式来直接操作struts标签,可能会遇到一些“很怪异”(从代码逻辑上找不到错误)的问题,让人很郁闷,如何解决这种问题?
最简单的方法是:用html标签代替struts2标签。但这样便无法享受struts2标签所带来的便利,而且会在页面中掺杂很多jsp代码()。我比较喜欢另一种方法:页面显示后,查看其经过浏览器解析后的源码(浏览器自带有查看页面源码的功能),其实就是strut2标签解析为对应的html标签,再用js操作就比较简单了,不用在此赘述。建议用fireFox浏览器调试web页面,可以用其fireBug功能调试js。
下面看一个例子:
Html代码为:
录入选项:
Js代码为:
var s=document.getElementById(“opt”).value;
或者jquery代码为:
var s=$(“#opt”).attr(“value”);
表面上看起来都没有错误,但实际上s却得不到值,为什么呢?
查看浏览器解析后的源码如下:
录入选项:人员理论教学
人员临床教学
教学管理文章
精品课程
精品教材
指导优秀论文
教育年度考核子集
由此可看出上述js代码是不可能获取值的。可改为:
var s=$(“:radio:checked”).attr(“value”);
另外,要特别注意上述标签中的属性value=“’theTeach’”设置默认选中项,要求value的值必须与list属性中的key值完全相同。
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。