Rails选中的字段未显示在表单上

时间:2011-12-30 12:03:42

标签: jquery ruby-on-rails select tags

这可能是关于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 个答案:

答案 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") %>