0

1 つの HTML ページに複数のフォームがあります。各フォームには、同じメソッド名に対して異なる検証ロジックがあります。ただし、jQuery-validator では、以下のメソッド「equal」のように、メソッドをグローバルに追加することしかできません。

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

jQuery.noConflict() を試しましたが、これは form2 のメソッドを停止して form1 をオーバーライドしません。

必要な理由は、複数のポートレットを持つポータル アプリケーションを開発しているためです。各ポートレットは、独立した Web アプリケーションのようなものです (ただし、HTML、HEAD、BODY タグはなく、HTML の断片にすぎません)。各ポートレットはお互いを認識していません。それらが一緒になって単一の HTML ページを形成し、ポータルはすべてのポートレットの HTML フラグメントを結合し、共通の HTML、HEAD、BODY タグを追加します。

jQuery の複数のインスタンスまたは jQuery-validator の複数のインスタンスを許可する方法、またはカスタム バリデータ メソッドを非グローバルに宣言する方法のいずれかが必要です。

感謝します。

4

1 に答える 1

0

これは醜いハックですが、ポートレットを iframe に配置できます。各 iframe は、javascript を分離して実行します。jquery の複数の「インスタンス」を持つことができます。

ただし、iFrame は他のあらゆる種類の問題を引き起こすため、これは最後の手段です。

于 2012-07-08T01:06:46.507 に答える