【问题标题】:Rails selected field not showing up on the formRails 选定字段未显示在表单上
【发布时间】:2012-01-30 13:02:58
【问题描述】:

这可能是关于 SO 的最愚蠢的问题,但我无法弄清楚问题所在。 我正在为一个项目使用旧版本的 Rails 2.3.3,并且我正在使用 jQuery Dialog 显示一个表单。表单有一个选择框,我正在渲染它。

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

我看到 html(在 javascript 控制台中查看时)按预期显示所选属性,但浏览器上的表单没有显示此内容。

如果这是浏览器问题(但我无法在任何浏览器中查看)或者我在 Rails 上做错了什么,我完全一无所知。

因此,当我在未从下拉列表中选择任何内容的情况下提交表单时,默认选择的值永远不会传递给服务器。真的非常感谢一些帮助。

【问题讨论】:

    标签: jquery ruby-on-rails select tags


    【解决方案1】:

    这听起来像是一个非封闭标签问题...

    如果您在生成的 HTML 代码中有类似的内容

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

    你的选择语句没有被渲染,导致之前的输入标签没有关闭。 它与 Rails 本身无关,但如果您正在编写它,它很容易在视图中发生 没有 rails 助手的 HTML...

    在选择标签之前检查源代码以获取非封闭标签..

    希望这会有所帮助!

    【讨论】:

    • 检查非封闭标签。这些字段在选择时起作用,但当用户没有明确选择选项时,永远不会传递默认值。我也没有任何提示或空白值。
    【解决方案2】:

    我认为问题在于您没有在正确的位置设置 :selected 选项。从您的示例来看,您似乎是在选择助手本身而不是在选项中设置它。您需要使用 options_for_select 中的 :selected。

    例如,这应该默认为每周一次:

     <%= f.select :recurr_frequency, options_for_select([["Daily","Daily"], ["Weekly", "Weekly"], ["Monthly","Monthly"]], :selected => "Weekly") %>
    

    【讨论】:

    • 嗯...实际上看起来您的使用情况在第二次审查时还可以。可能值得尝试在控制器中设置默认值,看看它是否在提交后通过。
    • 我也使用 options_for_select 进行了尝试,但我似乎无法在表单加载时显示默认值。
    • 我添加了一个适合我的示例。试一试。如果没有,当您在控制器操作中设置 @object.recurr_frequency="Daily" 时会发生什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 2017-07-29
    • 2020-10-24
    相关资源
    最近更新 更多