这可能是关于SO的最愚蠢的问题,但我无法解决问题。 我正在使用旧版本的Rails 2.3.3进行项目,我正在使用jQuery Dialog显示一个表单。表单有一个选择框,我这样渲染。
<%= f.select :recurr_frequency, [["Daily", "Daily"], ["Weekly","Weely"], ["Monthly", "Monthly"]], {:selected => "Daily", :value => "Daily"} %>
我看到html(在javascript控制台中查看 )以按预期显示所选属性,但浏览器上的表单未显示此内容。
如果这是一个浏览器问题(但我无法在任何浏览器中查看)或者我在使用Rails做错了,我完全不知道。
因此,当我提交表单而不从下拉列表中选择任何内容时,默认选定值永远不会传递给服务器。非常感谢一些帮助。
答案 0 :(得分:1)
这听起来就像一个非封闭的标签问题......
如果您在生成的HTML代码中有类似的内容
<input type="text" name="whatever" id="whatever" /
<select id="..." name="...>
<option value="Weekly">Weekly</option>
...
</select>
您的select语句未呈现,导致之前的输入标记未关闭。 它与Rails本身无关,但如果你正在编写,它可以很容易地在视图中发生 没有rails助手的HTML ......
检查非封闭标签的select标签之前的源代码..
希望这有帮助!
答案 1 :(得分:0)
我认为问题是你没有在正确的位置设置:selected选项。从您的示例中,您看起来像是在select helper本身而不是在选项中设置它。您需要使用options_for_select中选择的:
例如,这应默认为每周:
<%= f.select :recurr_frequency, options_for_select([["Daily","Daily"], ["Weekly", "Weekly"], ["Monthly","Monthly"]], :selected => "Weekly") %>