2012-01-11 49 views
2

我有一個小表單和一個鏈接,使用jQuery和POST提交此表單。我希望在不使用AJAX刷新的情況下在表單頁面上顯示流程頁面的HTML輸出。但是,當我點擊我的提交鏈接時,我的代碼似乎不起作用。請有人指出我在這裏可能做錯了什麼?非常感謝。使用鏈接提交表單在jQuery中將不起作用

問候

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"> 

</script> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
      $('#myform').submit(function() { 
       $.post('demoprocess.php', $("#myform").serialize(), function(data) { 
        $('#results').html(data); 
       }); 
      }); 
}); 
    </script> 

<form name="myform" id="myform" action="" method="POST"> 
    <label for="name" id="name_label">Name</label> 
    <input type="text" name="name" id="name" size="30" value=""/><br>> 

    <label for="email" id="email_label">Email</label> 
    <input type="text" name="email" id="email" size="30" value=""/><br> 

    <a href="#" title="" class="pay-button" style="margin-top:5px;" onclick="document.myform.submit()">SUBMIT</a> 
</form> 

<!-- We will output the results from demoprocess.php here --> 
<div id="results"><div> 
+0

試''SUBMIT你 – 2012-01-11 14:02:58

+0

代碼缺少'});'收了'document.ready'處理程序。這是一個錯字嗎?如果不是這可能會導致問題。 – 2012-01-11 14:04:04

+0

謝謝Rory,有一個錯字,但它仍然不起作用 – user1038814 2012-01-11 14:15:24

回答

0

你可以這樣做:

document.forms[0].submit() 

$('#myform').submit(); 
5

麻煩的是,你要綁定一個jQuery的submit處理程序,但燒製本地DOMsubmit方法。這不會觸發一個submit事件,所以jQuery處理程序永遠不會被通知。

您應該用jQuery來觸發事件。這可能是最簡單的也是這樣做jQuery的,而不是使用onclick屬性:

$('.pay-button').click(function(e) { 
    e.preventDefault(); // prevent the link's default behaviour 
    $('#myForm').submit(); // trigget the submit handler 
}); 

請注意,這不是很好的設計,海事組織,因爲沒有JavaScript的用戶將無法提交表單。

0

儘量防止在表單提交的默認行爲:

$('#myform').submit(function(ev){ 
    ev.preventDefault(); 
    $.post('demoprocess.php', $("#myform").serialize(), function(data) { 
     $('#results').html(data); 
    }); 
}); 
1

的問題是,你的形式不包含觸發的JavaScript submit事件

從jQuery文檔.submit()任何元素:

當用戶正在嘗試提交表單時,將提交事件發送到元素。它只能附在元素上。可以通過單擊明確的<input type="submit">,<input type="image"><button type="submit">或通過在某些表單元素具有焦點時按Enter鍵來提交表單。

因此,爲了使.submit()作品,你需要添加一個:

  • <input type="submit">
  • <input type="image">
  • <button type="submit">

    到表單,所以你需要添加類似:

    <input type="submit" />