我正在尝试遵循嵌套模型表单的 railscast,但在编写Java Script
. 我已经工作Rails
了几个星期,但这是我第一次遇到JavaScript
,如果这听起来有点无趣,请原谅我。
我正在尝试按照演员表的建议从表单中删除元素,但它给了我以下错误。(我正在使用 Chrome 的调试工具查看错误)
Uncaught TypeError: Object [object Object] has no method 'previous' application.js?body=1:10222
remove_class_row application.js?body=1:10222
onclick read:95
这是我的观点,/app_root/app/views/classifications/read.html.erb:
<table id="classification_read_table">
<tr ><td id="classification_read_table_td">
<b>Classification</b>
</td></tr>
<%= form_tag read_build_path %>
<% @classes.each do |f| %>
<div class="class_row">
<tr >
<td class="classification_read_table_td">
<%= fields_for "class_is[]", f do |g| %>
<%= g.label :name %>
<%= g.text_field :name %>
<%= g.hidden_field :_destroy%>
<%= link_to_function "remove", "remove_class_row(this)" %>
</td>
</tr>
</div>
<% end %>
<% end %>
</table>
这是我的 JS 文件 app_root/app/assets/javascript/application.js:
function remove_class_row(link) {
$(link).previous("input[type=hidden]").value = "1"; //Error on this line:
$(link).up(".class_row").hide();
}
我正在做 javascript,就像 rails cast 显示的那样,所以我不明白可能出了什么问题。我的第一个想法是,我正在尝试做的事情被弃用了吗?或者由于某种原因,我的 HTML 没有以正确的方式设置。
希望有人能指出我遗漏的平凡细节。
谢谢!!