function ajax_form(form_obj){ form_obj.submit(function(event) { // HTMLでの送信をキャンセル event.preventDefault(); // 操作対象のフォーム要素を取得 var $form = $(this); // 送信ボタンを取得 var $button = $form.find('button'); // 送信 $.ajax({ url: $form.attr('action'),type: $form.attr('method'),data: $form.serialize(),timeout: 10000,// 単位はミリ秒 // 送信前 beforeSend: function(xhr,settings) { // ボタンを無効化し、二重送信を防止 $button.attr('disabled',true); },// 応答後 complete: function(xhr,textStatus) { // ボタンを有効化し、再送信を許可 $button.attr('disabled',false); },success: function(data,text_status){ $(".article_table_contents").html(data); $(".article_table_contents [type=checkBox]").prop("checked",true); } }); }); }
想在页面不刷新的情况下刷新table,所以我把页面分为index 和 partial
然后用上面的js代码ajax触发form的submit,请求完成后只render partial
render(:partial => "vm_results/table")
success后 再把接受到的更新后的table的html塞回 table内
$(".article_table_contents").html(data);不知还有其他做法么