yer*_*syl 1 javascript jquery ruby-on-rails coffeescript
我有两个选择,第二个根据第一个的值而改变.我使用CoffeScript.
<%= f.collection_select :type, RequestType.order(:typeName), :id, :typeName,
{include_blank:true }, {:class => "types"} %>
<%= f.grouped_collection_select :subtype, RequestType.order(:typeName),
:RequestSubTypes, :typeName, :request_type_id, :subTypeName,
{include_blank:true},
{:class => "subTypes" } %>Run Code Online (Sandbox Code Playgroud)
jQuery ->
subTypes = $(".subTypes").html()
$(".subTypes").parent().hide()
$(".types").change ->
type = $(".types :selected").text()
options = $(subTypes).filter("optgroup[label='#{type}']").html()
if options
$(".subTypes").html(options)
$(".subTypes").parent().show()
else
$(".subTypes").empty()
$(".subTypes").parent().hide()Run Code Online (Sandbox Code Playgroud)
<%= link_to "link", new_request_path %>Run Code Online (Sandbox Code Playgroud)
我相信你正在使用turbolinks.这是你的jquery引导程序在你最初访问的页面上执行一次并且没有与其他页面的DOM挂钩的方式,因为你的回调没有赶上.
你有几个选择来处理它.
使用属性data-turbolinks-track='false'上javascript_tag的布局的头.这样,js文件将在每个页面加载和主体上加载和执行.
将整个javascript_tag通话移至您的底部body.
使用jquery-turbolinks宝石.