我有一个h:commandLink在数据表的一列中。JSF :: h:commandLink onsubmit(return validateRow(this))问题
JSF
<h:commandLink id="save" actionListener="#{ApplicationManagerBean.update}"
rendered="#{routeappcode.edit}"
value="save" onclick="return validateRow(this)"/>
生成的HTML是
<a id="routeappcodesummary:summarytable:2:save"
onclick="var cf = function(){return validateRow(this)};
var oamSF = function(){return oamSubmitForm('routeappcodesummary','routeappcodesummary:summarytable:2:save');};return (cf()==false)? false : oamSF();"
href="#">save</a>
钻嘴鱼科1.2_15
<a href="#" onclick="var a=function(){return validateRow(this);};var b=function()
{if(typeof jsfcljs == 'function'){jsfcljs(document.getElementById('j_id_jsp_1765393453_2'),
{'j_id_jsp_1765393453_2:j_id_jsp_1765393453_3:0:j_id_jsp_1765393453_7':'j_id_jsp_1765393453
_2:j_id_jsp_1765393453_3:0:j_id_jsp_1765393453_7'},'');}return false};return (a()==false) ?
false : b();">test</a>
这里的onclick生成的JavaScript封装在JSF标签提供的脚本。
function validateRow(link){
//link is not a link object but some window object.
var parent = link.parentNode;
}
这里在JavaScript函数中,我们没有得到一个链接对象,而是一个窗口对象。 原因是在JSF标记中提供的脚本被封装,并且由于该值此 引用更改。
我该如何解决这个问题,以便我可以在我的脚本中获得链接对象?
使用onmouseup不会在IE 6
工作中使用JSF 1.2
我记得在4-5年前发布的古代Mojarra 1.2版本的问题,但我不认识自动生成的'oamSF'变量名称。你正在使用什么1.2 impl/version ** **?较新的Mojarra应该在webapp启动时记录日志,否则只需提取impl JAR文件并读取MANIFEST.MF文件。如果仍然不确定,请升级到最新版本并重试。 [Mojarra](http://javaserverfaces.java.net/)目前在1.2_15。 – BalusC 2011-04-15 22:20:52
它与最新的mojarra一样。 – changed 2011-04-15 22:56:34
Google知道我生成的代码是MyFaces的典型代码。你真的替代了Mojarra吗?如果生成的代码是相同的,那么它肯定没有被正确地升级/替换。 – BalusC 2011-04-16 03:40:04