我正在尝试通过 AJAX POST 请求保存/验证 django 表单。
第一次点击提交按钮时一切正常,但是,如果服务器端验证失败并且需要再次加载表单以便用户更新插入的内容,则事件侦听器不会捕获任何进一步的提交事件并且默认行为适用。
这是我在 $(document).ready(function() 下的相关代码
$(document).on('submit', '#myForm', function(event)
{
event.preventDefault();
$.ajax({
url: 'ajax/saveForm/',
data: $('#myForm').serialize(),
type: 'POST'
}).done(function(data) {
$('#myForm').html(data);
});
});
换句话说:一旦使用$('#myForm').html(data);
指令替换了表单的 html 代码,尽管 jquery 的事件侦听器应该与匹配选择器的未来元素一起工作,$(document).on('submit'...
但在提交事件上将不再调用。on
编辑:
在表单提交按钮上绑定点击事件有效。
$(document).on('click', '#myFormSubmit', function(event)
{
event.preventDefault();
$.ajax({
url: 'ajax/saveForm/',
data: $('#myForm').serialize(),
type: 'POST'
}).done(function(data) {
$('#myForm').html(data);
});
});
知道为什么吗?