1 回答

TA贡献1799条经验 获得超8个赞
原因是您submit在本机表单元素上调用事件,而不是引用表单的 jQuery 对象。因此,jQuerysubmit事件处理程序不会触发。
要解决此问题并改进您的代码,请onclick从 HTML 中删除过时的属性并为事件使用不显眼的事件处理程序blur- 尽管请注意这change似乎更合适,因为它会在模糊时触发,但仅在字段的值已更改之后,这将为您节省一些不必要的服务器请求。submit然后你可以在持有表单引用的 jQuery 对象上触发,像这样:
<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 id="project_title" type="text" class="form-control" name="project_title" required>
</div>
</div>
</div>
</div>
</form>
$(document).ready(function() {
var $form = $('#title_form');
var root = $('#url_root').val();
var php_file = 'assets/ajax/update.php';
var url = root + php_file;
$('#project_title').on('change', function() {
$form.trigger('submit');
});
$form.on('submit', function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: url,
data: $(this).serialize(),
success: function(response) {
var jsonData = JSON.parse(response);
console.log(jsonData);
}
});
});
});
- 1 回答
- 0 关注
- 166 浏览
添加回答
举报