2011-07-31 6 views
6

jquery validate pluginを使用してフォーム検証を行っています。しかし、DOMが完全に読み込まれずに[送信]ボタンをクリックすると、ドキュメントは検証を無視し、フォームの "action"属性で指定されたページに移動します。 DOMがロードされるまで、送信ボタンが送信されないようにすることはできますか? DOMがロードされるまで、送信ボタンが送信されないようにすることはできますか?

<form ... onsubmit="return false;"> 
.... 
</form> 

は次にJavaScriptで、あなたは準備ができたら、「活性化」するフォームの onsubmitハンドラを変更:

答えて

6

あなたが発生した場合、あなたのようにようにボタンを提出:

<input type="submit" id="submit" value="submit" disabled="disabled"/> 

は、その後、あなたが検証プラグインが初期化された直後に、あなたの$(document).ready(でこれを置くことができます。

$("#submit").prop("disabled", false); 

デモ:http://jsfiddle.net/nZVrs/

+0

これは私がやったことです。 – ninetwozero

+1

このソリューションには欠点があります。フォームはjavascript以外では使用できません。 – Peter

+0

また、テキスト入力でEnterキーを押してフォームを送信することもできますので、フォーム内のすべての入力も無効にする必要があります。 –

4

次のようなもので、最初は自分のフォームを発することができました。

0

DOMContentLoadedが解雇される前に、どのように正確に書類を提出できますか?ちょっと興味があるんだけど?

window.onloadの場合は、ページが完全に読み込まれるまでに時間がかかる可能性があることを理解していますが(特にコンテンツが以前にキャッシュされていなかった場合)、DOMContentLoaded

ほとんどの場合、ページがレンダリングを開始した後に非常に高速で起動し、フォームを送信することはほとんど不可能です。

関連する問題