У меня есть следующий снимок выбора в моих рельсах. Я ниже синтаксис от API (http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_select):Как вы добавляете onchange к коллекции_select?
collection_select (объект, метод, сбор, value_method, text_method, опции = {}, html_options = {})
<%= collection_select(:sources, :source_id, Source.all, :id, :name, :include_blank => "Please select a source...", html_options = {:onchange => "updateTextArea()"}) %>
function updateTextArea(){
alert('source changed')
}
Я могу чтобы получить снимок, чтобы отображать только штрафы со значениями из БД, когда я не включаю html_options. Тем не менее, я застрял, пытаясь получить действие onchange.
Это заставило меня пройти за исключением синтаксиса, однако это не дает мне предупреждение диалога, поэтому я не знаю, почему эта функция не срабатывает, когда я изменяю выпадающие значения. – A21
Моя ошибка, мой знак
Я считаю, что вместо
options =
илиhtml_options =
вам нужно передать сам фактический хэш (как вы на самом деле сделал сinclude_blank => true
). Я бы выделил только эти хеши с фигурными скобками, чтобы их разделить:Надеюсь, это поможет.
EDIT:
Я забыл добавить, что если
updateTextArea()
функция JS не связывается с окном может возникнуть проблема с подбором его (я имел аналогичные проблемы в прошлом). Для безопасности я бы делать (если вы не используете CoffeScript):источник
2016-02-29 21:02:17