は、私は私のjavascriptのコードを、簡単な質問を持ってIましたこの:JQuery - フォーム送信 - 何回ですか?
\t $('form').submit(function (e) {
\t \t var form = $(this);
\t \t console.log('submit attempt');
\t \t $('input, select, textarea').each(function() {
\t \t \t var attr = $(this).attr('required');
\t \t \t if (typeof attr == typeof undefined || attr == false || (attr = 'Y' && $(this).val() != '')) {
\t \t \t \t if($(this).hasClass('numeric')) {
\t \t \t \t \t if(isNumber($(this).val())) {
\t \t \t \t \t \t $(form).submit();
\t \t \t \t \t }
\t \t \t \t }
\t \t \t \t else {
\t \t \t \t \t $(form).submit();
\t \t \t \t }
\t \t \t }
\t \t \t else {
\t \t \t \t e.preventDefault();
\t \t \t \t $(this).css('border','1px solid red');
\t \t \t }
\t \t });
\t });
とコンソールログに私は、エラー '試みを提出' の1300件のメッセージを乗り越え:
Uncaught RangeError: Maximum call stack size exceeded
あなたはこれがどうして起こり、どのように解決するのか考えていますか?私は忘れてしまったのですか?
さらに必要な情報がある場合は教えてください。
ありがとうございました!
ループから複数のフォーム送信が再帰的に発生するため、 '$(form).submit();'をループから削除する必要があります。 –
問題は、再帰的に呼び出すサブミット内でフォームを再度送信していることです。 –
ああそう!私がif条件になったときにフォームをループにすることなくフォームを提出する方法を知っていますか? 私は、条件が真であればフォームを送信し、そうでなければpreventDefault ....条件に何も書いていないことは十分ですか? – Praem