javascript - 在操作时以 HTML 形式调用 php 但不重定向

标签 javascript php html forms

我有一个 HTML 表单如下:

<form id="ContactForm" name="ContactForm" method="post" action="emailinfo.php">

然后是调用 verify() 的提交按钮:

<a href="#" class="button1" onClick="verify()">Send</a>

verify 定义如下:

function verify() {
    if(document.getElementById("name").value=="" || document.getElementById("email").value=="") {
        alert("Please enter a name and an email.");
    } else {
        alert("Looks good, sending email");
        document.getElementById('ContactForm').submit();
    }
}

目前,当我点击提交按钮时,浏览器重定向到 emailinfo.php,这只是一个空白的白屏,因为 php 文件只是发送了一封电子邮件什么都不做。如何在不重定向的情况下运行该 php 文件?

最佳答案

您要做的是在单击按钮时使用 AJAX 向 emailinfo.php 文件发送请求。将表单操作设为空白会导致表单发布到您所在的同一页面。

如果您使用的是 jQuery,则通过 ajax 提交表单非常容易:

$(document).ready( function() {
    $('.button1').click(function(){
        var f = $('#ContactForm');
        $.ajax({
          type: "POST",
          url: "emailinfo.php",
          data: f.serialize()
        });
    });
});

关于javascript - 在操作时以 HTML 形式调用 php 但不重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19921159/

相关文章:

javascript - 将前导零数字转换为字符串,即 015 到 "015"

javascript - Jquery Draggable 占位符拖放

javascript - Durandal 激活函数内部的 .datepicker 调用不起作用

javascript - 创建具有可拖动功能的分段控件

html - 如何实现固定导航栏

javascript - jqplot meter gauge 问题 : c. jqplot 未定义?

php - query_posts() 应该避免吗?

php - 正则表达式匹配电话号码中相同的重复数字

javascript - 当缓存优先策略中的内容发生变化时,网站不会更新

html - 建立新的基于框架的元素并使用 LESS