我是 ajax 新手,知道一些基本的 jQuery。但是,在测试一个简单的测试 ajax 脚本时,我遇到了困难。
我已经阅读了与我类似的其他问题,但我无法得到任何结果。
我希望实现的目标:当输入字段为“onblur”时,它会提交它所在的表单,将 ajax 请求发送到一个文件,该文件简单地回显以 json 格式提交的内容并将其返回并将响应记录到控制台。
这是我所做的。这是单击输入字段时提交的表单:
<form id="title_form" method="POST">
<div class="row">
<div class="col-12">
<div class="form-group">
<label for="project_title">Project Title</label>
<div class="input-group input-group-lg">
<input onblur="return document.getElementById('title_form').submit();" id="project_title" type="text" class="form-control" name="project_title" required>
</div>
</div>
</div>
</div>
</form>
这是ajax脚本:
$(document).ready(function() {
var root = $('#url_root').val();
var php_file = 'assets/ajax/update.php';
var url = root+php_file;
$('#title_form').submit(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: url,
data: $(this).serialize(),
success: function(response)
{
var jsonData = JSON.parse(response);
console.log(jsonData);
}
});
});
});
这是以 json 格式回显帖子数据的 update.php 页面:
<?php
if(isset($_POST['project_title'])){
echo json_encode($_POST['project_title']);
}
?>
onblur 提交表单部分工作正常!
但是,我的 ajax 脚本并没有阻止页面被刷新(尽管有 e.preventDefault)并且它没有在控制台中记录响应(我的猜测是因为 ajax 脚本根本没有工作,因为我错过了一些明显的东西。
守着星空守着你