0

次のスクリプトを使用して、フォームの送信を防止しようとしていますが、常に実行されます。ドキュメントの読み込みも試しpreventDefault()ましたが、機能しません。

$("form").submit(function() {
      if ($("input").eq(3).val() == $("input").eq(4).val()) {
            $("span").text("Validated...").show();
        return true;
      }

      $("span").text("Passwords do not match!").show().fadeOut(1000);
      return false;
});
4

3 に答える 3

1
$("form").submit(function(e) {
      if ($("input").eq(3).val() == $("input").eq(4).val()) {
            $("span").text("Validated...").show();
      }
      else{
        $("span").text("Passwords do not match!").show().fadeOut(1000);
        e.preventDefault();
      }
});

preventDefault()アクションをキャンセルするには、を使用する必要があります。e匿名関数呼び出しに追加したパラメーターに注意してください。

于 2012-09-05T20:47:49.937 に答える
0

私の提案、または私が通常これについて行う方法は次のようなものです:

$("form").submit(function(e) {
    e.preventDefault(); // form never fires unless I want it to

    if( condition == true ) {
        $(this).submit();
    } else {
        //Don't submit
    }
}

これは、 preventDefault()>がfalseを返す理由の優れた説明です。

于 2012-09-05T20:52:16.687 に答える
0

これを閉じるために私は何かを見つけたと思いますが、それはせいぜいばかげています。私の関数は、$(document).readyにあるときに機能します。なんで?私はあなたのアドバイスを聞いてうれしいです。

$(document).ready(function(){

$("form").submit(function() {
      if ($("input").eq(3).val() == $("input").eq(4).val()) {
            $("span").text("Validated...").show();
        return true;
      }

      $("span").text("Passwords do not match!").show().fadeOut(1000);
      return false;
});

 });
于 2012-09-05T21:06:35.253 に答える