新的Rails,甚至更新的Ajax。我有一個顯示可搜索記錄表的頁面。我使用partials和jQuery來通過ajax更新搜索結果表的內容。除非顯示搜索結果,否則單擊提交按鈕不會執行任何操作,即使選擇了某些項目,該部分也可以很好地工作。爲什麼在Rails應用程序中通過ajax替換表內容後,提交按鈕不起作用?
表部分定義:
<table border="1" class="pretty">
<tr>
<th></th>
<th><%= sortable "name", "Name" %></th>
<th><%= sortable "num_posts", "Posts" %></th>
<th></th>
</tr>
<%= form_tag() do %>
<% @friends.each do |friend| %>
<tr>
<td><%= image_tag friend.pic_url %></td>
<td><%= friend.name %></td>
<td><%= friend.num_posts %></td>
<td><%= check_box_tag "selected_friends[#{friend.id}]" %></td>
</tr>
<% end %>
</table>
<%= paginate @friends %>
<br />
<%= submit_tag "Un-ignore friend(s)", :name => 'unignore_selected' %>
<% end %>
這裏是jQuery的調用通過Ajax呈現部分:
$('#datatable').html('<%= escape_javascript(render("table")) %>');
這裏在application.js中的jQuery方法我用支持此(直接從railscasts,所以我不是100%清楚這些在做什麼)引擎蓋
$('#datatable th a').live('click', function() {
$.getScript(this.href);
return false;
});
$('#data_search').submit(function() {
$.get(this.action, $(this).serialize(), null, 'script');
return false;
});
當我在完成搜索後單擊提交按鈕時,在螢火蟲或Chrome開發工具中完全沒有任何活動,我的操作控制器上的斷點也沒有被擊中。我試着添加一個類似於上面的「#data_search」的jQuery函數,但是這完全破壞了按鈕。
有關爲什麼發生這種情況以及如何解決它的任何想法?
您是否嘗試過的JavaScript源上設置的JavaScript斷點(通過螢火蟲,Chrome瀏覽器開發工具等)內提交內部函數之前?如果您發佈實際呈現的HTML表格而不是表格定義,它可能會更有幫助。 – 2011-12-14 21:24:14
不,但我所做的是在應用程序中放置警報。js文件查看/何時jquery正在被擊中;它只是需要傳遞給動作控制器的參數爲零,所以它會跳過本來應該執行的任務。 – BrMcMullin 2011-12-14 21:26:18