2011-05-28 218 views
0

我有非常简单的提交表单的脚本。 这是HTML模板:ajax表单没有提交

<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()函数从另一个视图获取数据,这是不同的故事。

回答

1

“.ajaxForm()”方法只需即可初始化表单。必须提交表格才能确实发生任何事情。

你应该把调用“.ajaxForm()”,在‘就绪’处理程序,然后有‘点击’处理程序只需调用‘提交()’:

$(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()”一步完成初始化和提交。