2012-01-11 53 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" />