2009-11-12 189 views
0

我只是使用JQuery驗證插件。 我有以下規格:'如果表單在10秒內不使用,給用戶一個警告,如果他沒有做任何事情,無論如何提交'Jquery驗證:用javascript提交表單並且不進行驗證

除了計時器等我有這個代碼提交表單:

timeoutId = setTimeout(function() { 

$("#session_expired").val("true"); 
$("form:first").validate({ 
        onsubmit: false 
       }); 
$("form:first").submit(); 
}, 10000); 

它做什麼:它會設置一定的隱藏字段的值,然後將其提交表單。我已經添加了驗證函數,以確保它在這種情況下不驗證。 你可能猜到了:它不起作用。

任何人有任何線索?

米歇爾

+0

它在哪裏失敗? – bang

+0

好一個:)它沒有提交,它仍然標記所有沒有值的必填字段爲'無效',並且它不提交 – Michel

回答

1

嘗試使用DOM方法,而不是直接的jQuery的提交提交方法:

更換

$("form:first").submit(); 

有:

document.forms[0].submit(); 

我的猜測是:

$("form:first").validate({ onsubmit: false }); 

僅適用於表單由提交按鈕推送提供時。

+0

我認爲這是一個很好的猜測(我不知道),但我知道這個作品。 謝謝! – Michel

0

我會刪除功能的每一部分,然後測試它,直到我能找到其中的部分功能是一個失敗。我們也用firebug和console.log來跟蹤函數中發生的事情。例如

timeoutId = setTimeout(function() { 
console.log('timeout') 
}, 10000); 
+0

它觸發了函數($(「form:first」)。submit() ;)10秒後,但驗證不會'停止',所以我想可能是 $(「form:first」)。validate({onsubmit:false}); 是不正確 – Michel