我有一個快速的問題,在我的javascript代碼我有這樣的: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
你們有什麼想法,爲什麼發生這種情況,以及如何解決它?也許關於submit()的一些棘手的事情我忘了?
如果需要更多信息,請告訴我。
謝謝!
您應該從循環中刪除'$(form).submit();',因爲它會導致多個表單遞歸遞交。 –
問題是你遞交遞交遞交表單遞歸調用遞歸 –
哦,對了!你知道我怎麼能提交表單,當我在if條件沒有成爲一個循環? 我的意思是:如果條件是真的發送表單,否則preventDefault ....沒有條件寫什麼就夠了? – Praem