【发布时间】:2013-09-05 19:41:01
【问题描述】:
我正在尝试通过 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 的 on 事件侦听器应该与未来一起使用,但在提交事件上将不再调用 $(document).on('submit'...匹配选择器的元素。
编辑:
在表单提交按钮上绑定点击事件有效。
$(document).on('click', '#myFormSubmit', function(event)
{
event.preventDefault();
$.ajax({
url: 'ajax/saveForm/',
data: $('#myForm').serialize(),
type: 'POST'
}).done(function(data) {
$('#myForm').html(data);
});
});
知道为什么吗?
【问题讨论】:
标签: javascript jquery ajax django forms