3

我知道在 MVC 和 Ruby on rail 环境上我有这个代码 <%= select :language, :language_id, options_for_select([ "Arabic", "English"]), {:prompt => "#{t('language')}"}, {:onChange => "#{remote_function(:url => {:controller => 'ConfigurationController',:action => "change_language"} )}"} %> 而且我不能让 Select 来调用这个动作并在更改页面上进行 PostBack

选择索引更改后什么都没有发生?

4

2 回答 2

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) }
于 2012-04-14T07:25:24.207 回答
0

你用的是什么版本的 Rails?看起来 remote_function 在 3.1 http://apidock.com/rails/ActionView/Helpers/PrototypeHelper/remote_function中已被弃用

使用 jQuery 响应 change 事件:

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()
于 2012-04-14T09:06:07.940 回答