表单提交 - 防止页面重载的jQuery(Form Submit - Preventing page

2019-10-18 08:08发布

我建立一个联系表,我想通过Ajax提交数据并显示结果通过同退。 但每当用户点击提交按钮,页面似乎是自动提交。 我用的jQuery的preventDefaultstopPropogation了。 但它仍然没有工作。 我是新来的jQuery,我可能失去了一些东西小。 下面的代码:

形成

<form action="#" method="post" accept-charset="utf-8" name="contactform" id="contactform">
        <p>Name<br/><input type="text" name="cname" value="" id="cname" required /></p><br/>
        <p>Email<br/><input type="email" name="cemail" value="" id="cemail" required /></p><br/>
        <p>Message<br/><textarea name="cmessage" cols="40" rows="10" id="cmessage" required ></textarea></p>

        //Re-captcha code here
        <p><input type="submit" name="contact_submit" value="Submit" id="contact_submit"  /></p>
        </form> 

        <br />
        <div id="result"></div>

脚本

$(document).ready( function(){
$("#contact_submit").click( function(e){

   e.preventDefault();
   e.stopPropagation();




 });

 $("#result").html('');

 $("#contactform").validate();


 });

我已经包括这也不能正常使用jQuery的验证插件。

Answer 1:

jQuery的需要#识别ID和. 上课。

如果你不想提交表单使用:

$("#contactform").on('submit', function(e){

    alert("not submited");
    return false;

    });


Answer 2:

你真正需要的是捕捉submit()preventDefault()上。

$('#contactform').submit(function(e){
    e.preventDefault();
});


Answer 3:

还有,你可以看看一对夫妇的事情。 首先,从类型=改变“提交”,键入=“按钮”。 这使你无需提交所有相同的功能。 其次,如果你试图让这个工作在IE,它不工作,因为IE不具备事件对象上的preventDefault方法。 您可以将刚才的returnValue设置为false。

$("#contactform").submit( function(e){
   e.stopPropagation();
   if(e.preventDefault){
      e.preventDefault();
   }else{
      e.returnValue = false;
   }
});


Answer 4:

塞尔吉奥是正确的。

此外,点击listenter永远不会输入工作,要么,正确的选择是

$('input[name="contact_submit"]')


文章来源: Form Submit - Preventing page reload jQuery