我有以下表格:
<div>
<form id="edit-form" method="post" action="">{% csrf_token %}
<fieldset></fieldset>
<button id="button-submit" type="submit">Submit</button>
</form>
</div>
我想自己解雇提交,以便我可以通过ajax来完成。问题是我从未进入提交处理程序。这是代码:
$.post(url,data,function(result){
$( ".page-added" ).append(result);
$("#edit-form").submit(function (event){
event.preventDefault();
alert('submitted');
return false;
});
})
return false
});
结果包含编辑表单。
问题是永远不会触发警报并且永远不会达到提交处理程序。
答案 0 :(得分:1)
可能是因为append()
同步行为,因此在DOM中存在#edit-form
之前绑定该处理程序。
您可以针对此问题使用不同的方法,即在静态元素上使用on()
:
// bind your submit handler here, assuming .page-added is the static element
$('.page-added').on('submit', '#edit-form', function (e) {
e.preventDefault();
alert('submitted');
});
// do your ajax here
$.post(url, data, function (result) {
$(".page-added").append(result);
});
希望它有所帮助。