0

リンクをクリックするとコンタクトフォームがスライドダウンするページがあります (つまり、.slideDown('slow') で表示されるページ上の div です)

お問い合わせフォームで jQuery 検証プラグインを使用していますが、テスト中に event.preventDefault(); があることに気付きました。コメントアウトしました。最終バージョンでは、[送信] をクリックしたときにページをリダイレクトしたり、投稿したりしたくないため、コメントを外したいと考えています。

電子メールを送信するために Ajax 投稿を送信する [送信] ボタンがあります。この機能を維持しながら、jQuery の検証プラグインを引き続き使用するにはどうすればよいですか?

4

2 に答える 2

1

フォームにアクションを設定する代わりに$.bind()clickハンドラーをフォーム送信ボタンに設定$.post()し、投稿リクエストを行うために使用します。ただし、いくつかの注意事項があります。最初に、おそらくフォームにアクションを設定し、Javascript が無効になっている人のためにデフォルトでリダイレクトできるようにしてから、jQuery を使用してフォームからアクションを削除し、ページがロードされたときに送信ボタンへ$.bind()clickハンドラーに移動する必要があります。第二に、コードでアラートまたはその他のアクセス可能な通知を使用する場合、alert()メソッドを使用するか、通知を含めるために dom 要素を使用する場合は、WAI-ARIAライブ リージョンとロール属性を使用して通知を行うようにしてください。補助装置にアクセスできます。

 function onFormSubmit(event)
 {
      $.post('http://url.to.your.service', 
             $('#theFormId').serialize(), 
             function(data, textStatus)
             {
                   switch(textStatus)
                   {
                        // Alert or some other 
                        // accessible notification of success/failure
                   }
             }
      );
 }

編集:質問をもっと注意深く読む必要がある場合があります。したがって、既に送信ボタンを使用して AJAX 要求を送信しています。私のユーザビリティに関するコメントが役に立つかもしれないので、回答のその部分は残しておきます。アクションをjavascript:null(0)#に設定するか、ターゲットを非表示の iframe に設定すると、同様に機能するはずです。

于 2009-11-08T15:58:56.793 に答える