2011-05-28 174 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()」一步完成初始化和提交。