2

私はフォームを持っています:

<form action="thanks.php" onsubmit="return false" class="submitForm">
... Some Inputs ...
</form>

および jQuery コード:

$(document).ready(function() {
       $("form.submitForm").on("submit", function() {
        $("form.submitForm").attr("onsubmit", "return true");
        $("form.submitForm").submit;
    });
});

ここで、jQuery コードを使用してフォームを送信します。それは機能しますが、2番目の入力または送信時にのみ...機能しない理由がわかりません...

助けてくれてありがとう!

私の英語の間違いでごめんなさい、私はドイツ出身です。

4

1 に答える 1

2

送信されない理由:

onsubmitへの属性があるため、フォームは送信されませんreturn false。これは、フォームの送信を妨げています$("form.submitForm").submit;。残念ながら、次のようなブラケットを追加する必要があるため、これは機能しません。$("form.submitForm").submit();

2回目に送信する理由:

最初の送信で、デフォルトの動作 ( ) を防止していますが、属性を にreturn false変更しています。これにより、最初に持っていたデフォルトの防止が削除されます。onsubmitreturn true

したがって、全体として、最初にクリックして、デフォルトの動作を で防止しreturn false、ミスがあるため送信しないでください。$("form.submitForm").submit;次に を true に変更しreturn falseて、フォームの送信を妨げていたものを削除します。

解決 :

このコードを使用してください:

$(document).ready(function() {
    $("form.submitForm").on("submit", function(e) {
        e.preventDefault()
        $("form.submitForm").submit();
    });
});

しかし、そのコードに他に何もない場合、なぜ兄弟はデフォルトを防止してからデフォルトの動作を行うのでしょうか?

于 2013-06-26T16:40:04.173 に答える