フォームにアクションを設定する代わりに$.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 に設定すると、同様に機能するはずです。