2015-09-25 185 views
0

我正在嘗試使用jQuery的submit()方法提交HTML表單。Jquery提交表單不起作用

我正在註冊一個submitHandler來檢查formdata。如果檢查失敗,用戶可以在對話中選擇是否繼續或取消。在繼續我註銷我的Checkeventhandler並調用窗體上的submit(),但沒有任何反應。

這裏是我的編碼:

<form action="test.php" id="summary_01" method="post"> 

</form> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#summary_01').on('submit', function(e){ 
     var result = check(); 
     if (!result) { 
      e.preventDefault(); 
     } 
     return result; 
     }); 
    }); 

    function check() { 
     var result = false; 
     // do some Checks, setting result= true, if OK 

     if(!result) { 
      $("#dialog-message").dialog({ 
       modal: true, 
       resize : true, 
       width : 'auto', 
       buttons: { 
        Ok: function() { //Sending, despite check failed 

        $('#summary_01').unbind('submit'); //remove checkingForm Eventhandler 
        $('#summary_01').submit(); 
        $(this).dialog("close"); 
        }, 
        Cancel : function() { 
        $(this).dialog("close"); 

        } 
       } 
      }); 
     } 
     return result; 
    } 
</script> 

我認爲這個問題是e.preventDefault(),但對話的調用是異步的,因此我阻止提交,直到用戶選擇繼續或取消。

也許你可以幫我。感謝您的幫助提前。

+0

你可以試試這個:$( '#form01')提交(函數(E){ – VRK

+0

不同的ID $( '#summary_01')和$( '#form01') – BenG

+0

你會在技術上有多大?如果你在$('#summary_01')。submit();之前創建了一個無限循環,那麼你提交的文件就沒有通過,因爲每次你提交你運行你的preventDefault。目前你正在彈出第二個對話框,然後關閉其中的兩個 –

回答

1

調用原生submit函數。在你的代碼中你也有其他的表單ID。應該是#form01

$('#form01').off('submit'); 
$('#form01').get(0).submit(); 
+0

嗨感謝您的回覆。不幸的是,這也不適合我。那麼什麼都沒發生 – user1829716

+0

@ user1829716您在表單中是否有任何'type =「submit」'輸入/按鈕? – Krzysiek

+0

是的我有一個類型爲submit的發送輸入。我必須在這個按鈕上調用submit()嗎? – user1829716