我的页面上有一个带有咖啡脚本的清晰按钮
HTML
<div class="containerNew">
<%= form_for @customer, :url => customers_path do |f| %>
<table id="createNewCustomer">
<tr>
<td colspan="2">Input</td>
</tr>
<tr>
<td class="title">
<%= f.label :machine_id, "Error Machine:" %>
</td>
<td class="content">
<%= select("customer", "machine_id", Machine.all.collect {|m| [ m.name, m.id ] }, { include_blank: false }) %>
</td>
</tr>
<tr>
<td class="title">
<%= f.label :error_info, "Error Info:" %>
</td>
<td class="content">
<%= f.text_area :error_info %>
</td>
</tr>
</table>
<div class="bottomBtnArea">
<%= f.submit "Submit" , class:"button btn btn-primary" %>
<input type="button" name="clear" value="clear" id="clearBtn" class="btn btn-default">
</div>
<% end %>
咖啡
$ ->
$('#clearBtn').click ->
$("#customer_machine_id").get(0).selectedIndex = 0
$("textarea").val("")
当我直接访问此网页的网址localhost:3000/customers/new
但是当我使用导航链接访问此页面时,它无法正常工作
<%= link_to "Add", new_customer_path %>
我使用chrome来调试我的脚本,当我使用nav访问此页面然后单击清除按钮时,它似乎没有进入功能块。脚本文件似乎没有被加载。我无法弄清楚它为什么会发生。
答案 0 :(得分:0)
这很可能是因为Turbolinks,一个Rails功能,可以进行一些神奇的缓存并防止jQuery的页面加载触发器正常工作。之前已经回答过这个问题(例如here) - 解决方案是添加一个触发器来加载关于Turbolinks加载事件的JS函数,而不是jQuery常用的$(document).ready
钩。假设您正在使用Rails 5,那么应该这样做:
$(document).on 'turbolinks:load', ->
$('#clearBtn').click ->
$("#customer_machine_id").get(0).selectedIndex = 0
$("textarea").val("")
有关详细信息,请查看turbolinks documentation。