2015-05-29 101 views
1

我有以下代碼:如何使用jQuery .submit提交表單?

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
</head> 

<body> 
    <form method="post" id="theform" action="http://example.com" target="_blank"> 
     <input name="email" placeholder="email" type="text"> 
     <input id="submit" type="submit" value="submit"> 
    </form> 
    <script type="text/javascript"> 
    jQuery(function() { 
     jQuery('#submit').on('click', function(e) { 
       e.preventDefault(); 
       jQuery('#theform').attr('disabled', 'disabled'); 
       //Code here 
       jQuery('#theform').removeAttr('disabled').submit(); 
      } 
     }); 

    }); 
    </script> 
</body> 

</html> 

形式不提交。任何想法是什麼?

我知道我可以通過ajax調用手動將表單提交到操作URL,然後使用JavaScript重定向到我想在新標籤頁中發送用戶的位置;不過,我不想這樣做,因爲popup blockers會吃掉JavaScript重定向。因此,我在submit上獲得target="_blank"的形式,它可以讓用戶在那裏發送它們......只要代碼工作。

+0

在控制檯中的任何錯誤? – Tushar

+0

@Tushar控制檯中沒有錯誤 – user4951834

+0

Ajax請求在「網絡」選項卡中? – Tushar

回答

1

從onclick事件處理程序中刪除行e.preventDefault();

更新: 對不起,我沒有注意到你明確地試圖在代碼後面提交表單。即使上述改變會解決它,但實際問題在哪裏。不要對函數做任何更改,只需將提交按鈕的ID重命名爲其他內容並更新綁定,並且代碼應該可以工作。 工作小提琴:http://jsfiddle.net/epednoat/

<body> 
    <form method="post" id="theform" action="http://example.com" target="_blank"> 
     <input name="email" placeholder="email" type="text"> 
     <input id="smt" type="submit" value="submit"> 
    </form> 
    <script type="text/javascript"> 
    jQuery(function() { 
     jQuery('#smt').on('click', function(e) { 
       e.preventDefault(); 
       jQuery('#theform').attr('disabled', 'disabled'); 
       //Code here 
       jQuery('#theform').removeAttr('disabled').submit(); 
      } 
     }); 

    }); 
    </script> 
</body> 

</html> 
+0

你是天才,我可以吻你。這工作。介意解釋?我以爲我想停止提交表單,因此e.preventDefault();點擊後。 – user4951834

+0

感謝您的更新。現在我的代碼完美無瑕地工作 - 再次感謝! – user4951834

0

您可以jQuery submit形式與下面的代碼。

$("#theform").submit(function(event) { 
    alert("Handler for .submit() called."); 
    event.preventDefault(); 
}); 

使用JavaScript

function submitform() 
{ 
    document.theform.submit(); 
} 
+0

試過了。它會在我稍後轉到.submit()時創建一個循環。 – user4951834

相關問題