Поле, выделенное Rails, не отображается в форме - PullRequest
2 голосов
/ 30 декабря 2011

Это может быть самый глупый вопрос на SO, но я не могу понять проблему.Я использую старую версию Rails 2.3.3 для проекта и отображаю форму с помощью jQuery Dialog.Форма имеет поле выбора, которое я рендерим следующим образом.

<%= f.select :recurr_frequency, [["Daily", "Daily"], ["Weekly","Weely"], ["Monthly", "Monthly"]], {:selected => "Daily", :value => "Daily"} %>

Я вижу, что HTML ( при просмотре в консоли JavaScript ) для отображениявыбранный атрибут, как и ожидалось, но форма в браузере не показывает это.

Я совершенно не понимаю, если это проблема браузера (, но я не могу просмотреть это в любом браузере ) илия делаю что-то не так с Rails.

Поэтому, когда я отправляю форму, не выбирая ничего из выпадающего списка, выбранное по умолчанию значение никогда не передается на сервер.Был бы очень признателен за помощь.

Ответы [ 2 ]

1 голос
/ 30 декабря 2011

Это звучит как проблема с закрытым тегом ...

Если вы получили что-то подобное в своем результирующем HTML-коде

<input type="text" name="whatever" id="whatever" /
<select id="..." name="...>
  <option value="Weekly">Weekly</option>
  ...
</select>

, ваш оператор выбора не будет обработан,вызвать тег ввода до того, как не будет закрыт.Он не имеет ничего общего с самим Rails, но это может легко произойти в представлениях, если вы пишете HTML без помощников rails ...

Проверьте свой исходный код перед тегом select для незамкнутых тегов ..

Надеюсь, это поможет!

0 голосов
/ 30 декабря 2011

Я думаю, проблема в том, что вы не устанавливаете опцию: selected в нужном месте.Из вашего примера похоже, что вы устанавливаете его в самом помощнике выбора, а не в опциях.Вы можете использовать: selected в options_for_select .

Например, по умолчанию это должно быть еженедельно:

 <%= f.select :recurr_frequency, options_for_select([["Daily","Daily"], ["Weekly", "Weekly"], ["Monthly","Monthly"]], :selected => "Weekly") %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...