我有非常简单的脚本来提交表单。 这是html模板:
<table>
<form action='.' method = 'post' id='form'>{% csrf_token %}
{{ formset }}
<tr><td><button type='button' id='button' value='view'>shsfj</button></td></tr>
</form>
</table>
<div id='right-here'></div>
这是js:
$('#button').click(function(){
$.get('/json', function(data){
$('#right-here').replaceWith(
"<div id='right-here'>"+data+"</div>"
);
});
$("#form").ajaxForm(function(){
alert("It's ok");
});
});
所以我没有警觉。这意味着表单没有传递给服务器?怎么了? get()函数从另一个视图获取数据,这是不同的故事。
答案 0 :(得分:1)
“.ajaxForm()”方法只需初始化表单。必须提交表格才能真正发生任何事情。
你应该在“ready”处理程序中调用“.ajaxForm()”,然后让“click”处理程序简单地调用“submit()”:
$(function() {
$('#form').ajaxForm(function() { alert("Ok"); });
});
$('#button').click(function(){
$.get('/json', function(data){
$('#right-here').replaceWith(
"<div id='right-here'>"+data+"</div>"
);
});
$("#form").submit();
});
或者,您可以使用“.ajaxSubmit()”一步完成初始化和提交。