javascript - 使用 AJAX 提交表单不起作用。它忽略了ajax

标签 javascript jquery ajax forms submit

我以前从未使用过 Ajax,但从这里的研究和其他帖子看来,它应该能够运行表单提交代码,而无需重新加载页面,但它似乎不起作用。

它只是重定向到 ajax_submit.php,就好像 js 文件不存在一样。我试图使用 Ajax 来访问 ajax_submit 而无需重新加载任何内容。

我想做的事情可能吗?

HTML 表单:

<form class="ajax_form" action="ajax_submit.php" method="post">
<input class="input" id="license" type="text" name="license" placeholder="License" value="<?php echo htmlentities($person['license1']); ?>" />
<input class="input" id="license_number" type="text" name="license_number" placeholder="License number" value="<?php echo htmlentities($person['license_number1']); ?>" />

<input type="submit" class="form_button" name="submit_license1" value="Save"/>
<input type="submit" class="form_button" name="clear1" value="Clear"/>
</form>

在scripts.js文件中:

$(document).ready(function(){
$('.ajax_form').submit(function (event) {
    alert('ok');
    event.preventDefault();
    var form = $(this);
    $.ajax({
        type: "POST",
        url: "ajax_submit.php",//form.attr('action'),
        data: form.serialize(),
        success: function (data) {alert('ok');}
    });
});
});

在ajax_submit.php中:

require_once("functions.php");
require_once("session.php");
include("open_db.php");

if(isset($_POST["submit_license1"])){
    //query to insert
}elseif(isset($_POST['clear1'])) {
    //query to delete
}

我有“<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> ” 在 html 头部

最佳答案

form.serialize() 不知道使用哪个按钮来提交表单,因此它不能在结果中包含任何按钮。因此,当 PHP 脚本检查 $_POST 中设置了哪个提交按钮时,它们都不会匹配。

不要在 submit 事件上使用处理程序,而是在按钮上使用单击处理程序,并将按钮的名称和值添加到 data 参数中。

$(":submit").click(function(event) {
    alert('ok');
    event.preventDefault();
    var form = $(this.form);
    $.ajax({
        type: "POST",
        url: "ajax_submit.php",//form.attr('action'),
        data: form.serialize() + '&' + this.name + '=' + this.value,
        success: function (data) {alert('ok');}
    });
});

关于javascript - 使用 AJAX 提交表单不起作用。它忽略了ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40010140/

相关文章:

javascript - 单击导航栏中的列表多次调用函数

javascript - 尝试从一个站点加载 div 并使用 jQuery 将其显示在另一个站点上,但没有显示任何内容

php - 如何用 Amazon S3 替换 PHP imagecopyresampled?

javascript - 使用ajax检查电子邮件是否存在

javascript - 在 3000 端口上使用 https 的 Node.js socket.io

javascript - 使用一个 JavaScript 循环将单选按钮值与对象进行比较

javascript - 自定义 Google Map API V3 缩放按钮

jquery - 如何从带文本框的背景图像创建响应式缩放用户界面

javascript - VM299 :1 Uncaught SyntaxError: Unexpected token u in JSON at position 0 at JSON. 解析(<匿名>)

Typo3 v10 中的 Ajax 请求 : Calling controller action via typeNum