javascript - 使用ajax提交表单

标签 javascript jquery html ajax github-pages

我正在使用 GitHub 页面和 Jekyll 构建一个网站。

我想建立一个联系表单,用户可以在其中发送电子邮件。为此,我使用 Formspree 。我创建了一个帐户并尝试过,它正在工作。 问题是,当发送电子邮件时,我不想将页面重定向到默认的感谢页面。我尝试用ajax提交它,但出了点问题,因此它不起作用! 结果我出现了 404 错误。 URL 也已更改,如下所示:/?name=Name+Lastname&_replyto=test%40hotmail.com&message=Email+content+ 有人可以帮助我吗! 这是我的代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.13.1/jquery.validate.min.js"></script>
<script>
    $("#contact-form").validate({
  submitHandler: function(form) {
    $.ajax({
      url: "//formspree.io/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5a3f3d2035342e33343b7431283b2934332b331a32352e373b333674393537" rel="noreferrer noopener nofollow">[email protected]</a>", 
      method: "POST",
      data: {
        name: $(form).find("input[name='name']").val(),
        _replyto: $(form).find("input[name='_replyto']").val(),
        message: $(form).find("textarea[name='message']").val()
      },
      dataType: "json",
      success: function() {
        $("#submit-success").fadeIn();
        $("#contact-form").fadeOut();
      },
      error: function() {
        $("#submit-errors").fadeIn();        
      }
    });
  }
});
</script>

这是我的 html 代码:

 <div id="submit-success" class="alert alert-success alert-dismissible collapse" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
          Message received! I'll be in touch.
 </div>


<div id="submit-errors" class="alert alert-danger alert-dismissible collapse" role="alert">
  <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  It looks like there was an error submitting the form. Please try again later.
</div>


<form id="contact-form" class="form" action="/">
  <div class="form-group">
    <label for="name">Name</label>
    <input class="form-control" type="text" name="name" required placeholder="Name">
  </div>
  <div class="form-group">
    <label for="email">Email</label>
    <input class="form-control" type="email" name="_replyto" required placeholder="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="83e6eee2eaefc3e2e7e7f1e6f0f0ade0ecee" rel="noreferrer noopener nofollow">[email protected]</a>">
  </div>
  <div class="form-group">
    <label for="message">Message</label>
    <textarea class="form-control" name="message" placeholder="Message" required rows="5"></textarea>
  </div>
  <input class="btn btn-primary" type="submit" value="Send">
</form>

最佳答案

目前,您的表单正在正常提交。停止默认操作

$('#contact-form').on('submit', function(e) {
    e.preventDefault();
});

关于javascript - 使用ajax提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33499039/

相关文章:

html - css - 动态间隔列表项

javascript - .options[e.selectedIndex].innerHTML 不抓取值

javascript - react native : How do you disable the idle timer?

javascript - html5建表

javascript - 在什么情况下在数组中存储不同的数据类型在 Javascript 中有用?

JQuery 语法问题 - 使用 'this' 并检查 CSS 属性

jquery - 联系表 7 - 删除日期选择器微调器

html - Google Web 字体字体粗细无法正确呈现

javascript - 将消息发送到多个服务总线主题,然后将其发送到 cosmos db

javascript - 在 Apexcharts 上动态更新标题