当前位置: 首页 > 面试题库 >

防止页面重新加载和表单提交Ajax / jquery重定向

印宏阔
2023-03-14
问题内容

我浏览了所有类似的帖子,但似乎无济于事。这就是我所拥有的

HTML:

<section>
  <form id="contact-form" action="" method="post">
    <fieldset>
      <input id="name" name="name" placeholder="Name" type="text" />
      <input id="email" name="email" placeholder="Email" type="text" />
      <textarea id="comments" name="comments" placeholder="Message"></textarea>
      <div class="12u">
        <a href="#" id="form-button-submit " class="button" onClick="sendForm()">Send Message</a>
        <a href="#" id="form-button-clear" class="button" onClick="document.getElementById('contact-form').reset()">Clear Form</a>
      </div>
      <ul id="response"></ul>
    </fieldset>
  </form>
</section>

JavaScript / jQuery:

function sendForm() {
  var name = $('input#name').val();
  var email = $('input#email').val();
  var comments = $('textarea#comments').val();
  var formData = 'name=' + name + '&email=' + email + '&comments=' + comments;
  $.ajax({
    type: 'post',
    url: 'js/sendEmail.php',
    data: formData,
    success: function(results) {
      $('ul#response').html(results);
    }
  }); // end ajax
}

我无法做的是防止在按时刷新页面#form-button-submit。我尽力return false;尝试了preventDefault()每一个组合,包括return false;内部onClick。我也尝试使用input type="button"type="submit"相反的相同结果。我无法解决这个问题,这真是疯了。由于某些设计原因,我尽可能使用超链接。非常感谢您的帮助。


问题答案:

像这样修改函数:

function sendForm(e){
  e.preventDefault();
}

正如评论所提到的,通过事件:

onclick = sendForm(event);

更新2:

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

   var name = $('input#name').val(),
       email = $('input#email').val(),
       comments = $('textarea#comments').val(),
       formData = 'name=' + name + '&email=' + email + '&comments=' + comments;

    $.ajax({
      type: 'post',
      url: 'js/sendEmail.php',
      data: formData,
      success: function(results) {
        $('ul#response').html(results);
      }
    });
});


 类似资料:
  • 问题内容: 我浏览了所有类似的帖子,但似乎无济于事。这就是我所拥有的 HTML: JavaScript / jQuery: 我无法做的是防止在按时刷新页面。我尽力尝试了每一个组合,包括内部。我也尝试使用和相反的相同结果。我无法解决这个问题,这真是疯了。由于某些设计原因,我尽可能使用超链接。非常感谢您的帮助。 问题答案: 像这样修改函数: 正如评论所提到的,通过事件: 更新2:

  • 问题内容: 我对jQuery不太熟悉。我正在尝试制作一个无需重新加载页面即可在后台提交的表单。 我有一个隐藏的div,它显示并隐藏单击,在div内有一个表单。 我有两个问题: 1)表单验证失败时,仍将提交表单。我试图设置验证和提交代码的状态,但无法正常工作。 2)提交表单后,div自动隐藏,因此看不到成功的消息。 这是代码: 问题答案: 不应绑定到click事件(),而应绑定到 表单的事件。 我也

  • 问题内容: 我们正在发出多个ajax请求,以“保存” Web应用程序中的数据,然后重新加载页面。我们遇到了这样一种情况:(由于请求是异步发出的)在ajax调用完成时或之前重新加载页面。一种简单的解决方案是使用“ async”:false选项启用ajax调用,从而强制进行同步调用。这似乎可行,但是在执行任何调用之前运行的对话框代码会延迟运行。 任何意见是极大的赞赏! 还应注意,在重新加载之前放置al

  • 问题内容: 我的表单需要服务器处理一些时间。我需要确保用户等待并且不会再次单击按钮来尝试重新提交表单。我尝试使用以下jQuery代码: 当我在Firefox中尝试此操作时,所有功能都被禁用,但是该表单未与应该包含的任何POST数据一起提交。我不能使用jQuery提交表单,因为我需要将按钮与表单一起提交,因为有多个提交按钮,并且我确定POST中包含哪个值使用了哪个按钮。我需要像平常一样提交表单,并且

  • 问题内容: 我有一个分类广告网站,在显示广告的页面上,我正在创建“向朋友发送提示”表单… 因此,任何想要的人都可以将广告提示发送给某些朋友的电子邮件地址。 我猜该表格必须提交到php页面,对吗? 提交表单时,页面被重新加载…我不想要… 有什么办法可以使其不重新加载并仍然发送邮件?最好没有ajax或jquery … 谢谢 问题答案: 您需要提交ajax请求来发送电子邮件,而无需重新加载页面。 您的代

  • 问题内容: 我有的: 我有一个通过AJAX提交的表格。 我想要的是: 我想防止重复提交。由于仅在成功完成请求后该表单才会消失,因此只要数据库尚未完成数据写入,用户就可以单击“提交”按钮。显然,我不需要。 我尝试过的 我尝试将其添加到“提交”按钮本身中,但是它不起作用。该按钮被禁用,但是没有数据发送。 我也尝试将点击处理程序添加到“提交”按钮。具有与以前相同的效果。实际上没有数据发送到控制器,但是按