1

現在、同じお問い合わせフォームを2つウェブページで使用しています。1つはバナーのすべてのページにあり、もう1つのバージョンは連絡先ページ自体のメインセクションにあります。これは私がそれを検証するために使用するものです:

$(".contactform").each(function() {
    $(this).validate();
});

ただし、いずれかのフォームで[送信]をクリックすると、反対側のフォーム(未使用のフォーム)にエラーが表示されます。私はその人が両方に記入しなければならないことを望まず(それらはまったく同じフォームであるため)、ここからどこに行くべきかについて少し混乱しています。

4

3 に答える 3

2

xnnyygnの答えに従って私がやったことは、idごとに別々の.validateルールを追加することでした。クラスまたはフォームで行うと、これは機能せず、最初の選択エラーの結果を示します。

$("#contactform1").validate({
  rules: {
    field: {
      required: true
    }
  }
});

$("#contactform2").validate({
  rules: {
    field: {
      required: true

    }
  }
});


$(document).ready(function(){
  $("#contactform1").validate();
  $("#contactform2").validate();
});

ここでは、クラスまたはフォームセレクターの代わりに2つのIDを使用することになりました。それ以外の方法では機能しません。学んだ教訓、jquery.validatorではIDを使用する必要があります。

于 2012-08-22T15:47:05.680 に答える
1

これは、http://docs.jquery.com/Plugins/Validation#sourceからの私のテストHTMLであり、同じクラスで複製されたフォームを追加しています。

直接validateを呼び出そうとしましたが、2番目の送信ボタンを押すと最初のフォームが検証されました。ただし、validateを個別に呼び出すことは適切に機能します。

バリデーターが別のフォームに「ジャンプ」する理由は、jqueryバリデーターが最初の要素(フォーム)のみを取得してルールを適用するためである可能性があります。詳細については、ソースを参照してください。

于 2012-08-22T08:14:37.650 に答える
0

この問題が解決するかどうかはわかりませんが、「。each()」を明示的に使用する必要はありません。書くだけ:

$(".contactform").validate();
于 2012-08-22T07:40:22.560 に答える