具有多个表单的全局自定义jQuery-validator方法问题

时间:2012-07-08 00:39:37

标签: jquery jquery-validate portal

我在一个HTML页面上有多个表单。每个表单对于相同的方法名称将具有不同的验证逻辑。但是,jQuery-validator只允许全局添加方法,例如下面的方法'equal':

$.validator.methods.equal = function(value, element, param) {
    // form1 logic
    return value == param;
};

我尝试了jQuery.noConflict()但这并没有阻止form2的方法来覆盖form1。

需要的原因是,我正在开发具有多个portlet的门户应用程序。每个portlet都像独立的web应用程序(但没有HTML,HEAD,BODY标签,只是HTML的片段)。每个portlet都不知道彼此。它们一起形成一个单独的HTML页面,门户网站将组合所有portlet HTML片段并添加常见的HTML,HEAD,BODY标签。

我需要一种方法来允许jQuery的多个实例或jQuery-validator的多个实例,或者非全局地声明自定义验证器方法。

帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

这是一个丑陋的黑客,但你可以把portlet放在iframe中。每个iframe都独立运行javascript。你可以有多个jquery“实例”。

iFrame会导致各种其他问题,所以这是最后的解决方案。