jQueryの教科書が提供する問題を解決しようとしています。このように読みます
「エントリが作成されていないにもかかわらず、データが送信されます。これを修正するには、送信ボタンのデフォルト アクションを停止する必要があります。そのためには、イベント オブジェクトの preventDefault メソッドを、ファイルの最後の if ステートメントでコーディングします。図10-6のように
注*本が示唆するように、コードの最後にタグを付けると、10-6でコードがどのように見えるかが機能しません。
if (isValid == false) { event.preventDefault(); }
イベント オブジェクトに使用する名前は、送信イベント ハンドラーに使用されるパラメーターの名前と同じでなければならないことに注意してください。
注*送信イベントハンドラーは次のようになります
$("#email_form").submit(
function() {
var isValid = true;
// the script proceeds to validate each text field accordingly bla bla bla
ここで、空のフィールドで再度テストします。これにより、郵便番号フィールドを除く各フィールドの右側に「このフィールドは必須です」と表示されます。
私の問題は、preventDefault が機能せず、何を試しても送信されることです。
図 10-6 を説明するテキストからの興味深い注記は役立つかもしれませんが、私にはよくわかりません。
「isValid 変数が false の場合に true となる最後の if ステートメントが表示されます。これは、1 つ以上のフィールドが無効であることを意味します。その場合、イベント オブジェクトの preventDefault メソッドが実行されます。このオブジェクトは、関数 for に渡されます。このハンドラーの最初の行でイベント変数に格納されるパラメーターとしての送信イベント ハンドラー. 1 つ以上のフィールドがサーバーに送信されるときに preventDefault メソッドを使用しない場合、フォームはサーバーに送信されます。それがデフォルトのアクションです。」
どんな洞察も大歓迎です。