0

1 つのページに複数の連絡先フォームを配置し、ページを更新せずに電子メールを検証して送信することは可能ですか?

以下のチュートリアルを使用しましたが、明らかにコピーした場合、これは元のフォームのみを検証します...

http://www.ajaxfreak.com/2009/12/03/submit-a-form-without-page-refresh-using-jquery/

必要なフォームごとに JS などをコピーすることもできますが、おそらく非表示の値とフォーム ID を使用して、これを行うより効率的な方法が必要です。

誰にもアイデアはありますか?

ありがとう

4

1 に答える 1

0

確かに可能ですが、残念ながら、デモではIDを使用してデータ文字列を手動で作成するため、複数の形式に簡単に変換することはできません。フォームで.serialize()メソッドを使用する方がはるかに便利です。

次の(簡略化された)例は、クラス「ajax」を持つページ上の任意の数のフォームで機能するはずです。'required'クラスの入力要素は、最初に値がチェックされ、値がない場合は背景の赤色が適用されます。

$('form.ajax').submit(function() {
   var validates = true;
   $(this).find('input.required').each(function() {
      if($(this).val() == '') {
         $(this).css('background', '#ff9999');
         validates = false
      } else {
         $(this).css('background', '#ffffff');
      }
   }
   if(validates)  {
      $.ajax({
         type: "POST",
         url: "bin/process.php",
         $(this).serialize(),
         success: function() {
             // things to do on success here!
         }
      });
   }
   return false; // prevent normal form submission.
});
于 2010-11-01T22:39:19.280 に答える