Posted on 2008-08-27 15:42
Qzi 阅读(4071)
评论(1) 编辑 收藏 所属分类:
javascript
javascript是经典的敏感性语言,小小问题都会导致整体功能出错。
自己调用document.form[0].submit()的时候,会出现submit is not a function错误(使用firefox的firebug调试,非常好用),原因是页面的form中出现具有name=submit的元素,这样会影响到javascript调用submit()函数,改掉那个name=submit的元素即可。
另外submit提交struts1.2的action时候,如果后面跟有?method=***等的参数,那么注意,这个函数里面不要出现有method等关键字。
例如函数:
function changeAction(methodArg, wayArg){
with (document.forms[0]) {
action="<html:rewrite page='/BgdInfoReportAction.do'/>?method="+ methodArg + "&way=" + wayArg;
submit();
}
}
使用?method=***是在使用dispatchAction时候的做法原来我的参数名称是method和way,
结果报错:Action[/BgdInfoReportAction] does not contain method named post
原因是?后的method变得没有效,那么这个submit提交使用默认的post方法提交(servlet默认分为post和get方法嘛),
后来我将method改成methodArg和way改成wayArg,这个action就能够正确执行。
我重复测试改与不改的效果,仍然与上面一样。总结原因可能是是javascript的一些关键字冲突,所以尽量使用特殊一点的字符串作为变量名。