我不確定rails_ujs.js是如何工作的,但我認爲你的問題在於你在客戶端添加的html內容沒有響應已綁定的事件。解決方法是,無論何時在客戶端添加新的HTML元素,您還必須將任何事件綁定到它。
請看下面的例子:
<html>
<head>
<title>My Page</title>
<script src="jquery.js"></script>
</head>
<body>
<div id="content">
<a href="#" class="link">Click me</a>
</div>
<a href="#" class="add_link">Add link</a>
<script type="text/javascript">
$(document).ready(function(){
$('.link').click(function(){
alert('Click me');
});
$('.add_link').click(function(){
$("#content").append("<a href='#' class='link'>Click me no alert...</a>");
});
});
</script>
</body>
</html>
當你點擊「添加鏈接」鏈接會添加一個鏈接,說按我並具有一流的「鏈接」。但是,如果您點擊此鏈接,則不會顯示警報,即事件點擊事件不會觸發,而只會觸發服務器端生成的內容。
該解決方案更詳細的這個問題描述: In jQuery, how to attach events to dynamic html elements?
但是我不知道如何將它應用到rails_ujs,你可能需要做一些修改那裏。
這就是我的想法,這使得這非常令人沮喪地弄清楚。我的實際代碼是注入csrf標記併爲utf-8設置表單。 – bcardarella