2015-09-25 64 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