JSF2.0 + Primefaces 3.0.1 + jquery 1.6.4 + p:commandLink + IE8抛出对方法或属性的意外调用

球队,

我正在基于maven的jetty(8.0.1)上运行所描述的设置,并在IE8中获得一些奇怪的例外(仅限!)。

IE给我的错误,如下所示:

Webpage error details User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0) Timestamp: Wed, 29 Feb 2012 14:09:38 UTC Message: Unexpected call to method or property access. Line: 23 Char: 22640 Code: 0 URI: http://127.0.0.1:8080/javax.faces.resource/jquery/jquery.js.jsf?ln=primefaces&v=3.0.1 

在第23行的’javax.faces.resource / jquery / jquery.js.jsf?ln = primefaces&v = 3.0.1’中描述的代码段,char 22640是’finally’之后的'{‘:

 resolveWith:function(bw,bv){ if(!bs&&!bu&&!br){ bv=bv||[]; br=1; try{ while(bt[0]){ bt.shift().apply(bw,bv) } }finally{ bu=[bw,bv]; br=0 } } return this } 

这里JSF XHTML重现了这个错误:

        

以下JSF XHTML没有抛出错误:

       

区别在于第一个示例中的嵌套表单。 这是非常理想化的示例,但如果我嵌套组件和对话框,则反映相同的行为。 无论何时嵌套表单,IE8中都会出现上述错误。 FF和其他人只是按预期打开Dialog。

如果避免嵌套表单,但这是不可能的,因为mojarra不允许我放置,例如包含在组件中的commandLink而不用表单覆盖它。

CommandButton的行为方式相同。 我已经阅读了几个与IE的错误消息相关的其他方法和错误,但没有找到任何解决方案或有用的提示。

以下内容对我来说很有趣:

a)您是否能够重现这种特定的行为? b)你有任何想法如何解决或解决这个问题(可能以某种方式更新jquery)?

拳头我试图validation我的HTML5,但即使使用非HTML5和非常简化的HTML,它也会出现。

感谢任何帮助,暗示或提前链接到任何信息!

问候,

老兄

PS:如果你认为你知道什么,请推荐我提供更多细节或所需资源,我很幸运能在这里帮助别人!

嵌套表单在HTML中是非法的。 浏览器行为未指定。 从JSF的角度来看,您应该永远不会嵌套组件。

至于你需要嵌套表格的原因,

如果避免嵌套表单,但这是不可能的,因为mojarra不允许我放置,例如包含在组件中的commandLink而不用表单覆盖它。

这不是真的。 也许你正在采取以下众所周知的警告 严重。

警告:表单组件需要在其祖先中具有UIForm。 建议:在包含必要的组件

这只是一个警告,而不是错误。 如果您的页面工作正常,那么您可以忽略该警告。 只有在将项目阶段设置为“ Development时,才会显示此警告。 将其设置为“ Production时,它不会显示。

在早期的Mojarra版本中,有一个错误,当您在某个子/包含模板文件中放置命令链接时,也会发生此警告,而表单放在主模板中(因此在物理内部)不同的文件)。 升级Mojarra版本应修复此错误且令人困惑的警告。

也可以看看:

  • 表单组件需要在其祖先中具有UIForm。 建议:在中包含必要的组件
  • 如何在JSF页面中使用? 单一forms? 多种forms? 嵌套表格?