我知道MVC和Ruby上的铁路环境
我有这个代码
<%= select :language, :language_id,
options_for_select([ "Arabic", "English"]),
{:prompt => "#{t('language')}"},
{:onChange => "#{remote_function(:url => {:controller => 'ConfigurationController',:action => "change_language"}
)}"} %>
我不能让Select调用此操作并在更改时为页面设置PostBack
什么都没发生?
答案 0 :(得分:1)
因为这是一个远程函数调用。如果从服务器返回任何错误,你能在浏览器的控制台中看到。
select_tag的语法,你看起来很好用。
编辑:
你是否试过提醒onchange事件?参考这个语法
<%= select_tag "language", options_from_collection_for_select(@collection,'value','name'), html_options = { :onChange=> "alert('');" :style=> "display:block;" } %>
你可以使用
创建你的收藏@collection = ["en","ab"]
@collection = @collection.map { |name, value| OpenStruct.new(:value => name, :name => name) }
答案 1 :(得分:0)
您使用的是什么版本的Rails?看起来在3.1 http://apidock.com/rails/ActionView/Helpers/PrototypeHelper/remote_function
中不推荐使用远程功能使用jQuery响应更改事件:
jQuery ->
$("#select_id").change ->
$.ajax(
url: "url",
dataType: "json",
data: "data to send")
.done (data) ->
do_something_on_success()
.fail (data) ->
do_something_on_fail()