Ruby on rails 如何使用Ruby form select helper方法使默认选择值不是下拉列表中的选项

Ruby on rails 如何使用Ruby form select helper方法使默认选择值不是下拉列表中的选项,ruby-on-rails,ruby,ruby-on-rails-3,form-helpers,html-select,Ruby On Rails,Ruby,Ruby On Rails 3,Form Helpers,Html Select,好吧,我正在做一个外包的项目,现在我要在它投入生产之前就开始着手解决所有问题。我目前正在尝试修改一行,该行创建一个选择表单字段。我阅读了一些在ruby中使用的不同的form helper方法,以及该方法的一些可用选项 我的问题是,如果不让默认值显示在下拉选项中,我似乎不知道如何在select元素中显示它。这是该行当前的外观 <%= select :profile, :sexual_interest, SEXUAL_INTEREST_ARRAY, {:prompt => 'sexual

好吧,我正在做一个外包的项目,现在我要在它投入生产之前就开始着手解决所有问题。我目前正在尝试修改一行,该行创建一个选择表单字段。我阅读了一些在ruby中使用的不同的form helper方法,以及该方法的一些可用选项

我的问题是,如果不让默认值显示在下拉选项中,我似乎不知道如何在select元素中显示它。这是该行当前的外观

<%= select :profile, :sexual_interest, SEXUAL_INTEREST_ARRAY, {:prompt => 'sexuality'}, {:class => 'selectFull'} %>
我尝试使用:default=>“sexuality”更改一些选项,然后尝试:disabled=>“sexuality”。但我似乎只能完全从select元素中删除该选项,或者将其作为下拉列表中的第一个值并显示为默认值

如果您在使用ruby表单帮助器设置select字段的默认值时遇到问题,请参阅本文

如果有人能给我一些关于如何解决这个问题的见解,我将不胜感激。任何想法都会有帮助,谢谢阅读


-Alan

在HTML中不可能做到这一点,因此您必须使用另一种方法

可能的解决办法

假设你有:

<select name="selectBox" id="selectBox">
    <option value="default">default</option>
    <option value="option1">option1</option>
    <option value="option2">option2</option>
    <option value="option3">option3</option>
    <option value="option4">option4</option>    
</select>
关于​

选择器

对于索引:

$('#selectBox  option:eq(1)')
对于已知文本:

$('#selectBox option:contains("Selection 1")')

希望它能帮助你

我认为这在Html中是不可能的,所以在Rails中是不可能的。看起来你想要一个高级行为,可以使用JS来完成。虽然我不明白为什么标准默认值不合适?基本上是一个下拉选择器,他们希望在默认情况下显示下拉列表的标题,但不希望它成为下拉菜单中的可用选项。您必须将defaul值添加到列表中,当用户第一次单击select时,您必须使用jsp将其删除,这似乎是一个合法的解决方案,我能看到的唯一可能出现的问题是,如果用户单击下拉菜单而实际上没有进行选择。默认值将不再显示,新的第一个值将显示。感谢您的评论。我得到了整体的想法,这在很大程度上应该是可行的。问题是正在使用ruby表单选择帮助程序,所以我没有实际设置值。因此,没有为默认值设置任何值。。。所以html实际上看起来就像这个默认值,有没有办法删除包含.val==defalut的选项?我将$document.readyfunction{$profile\u-gender.changefunction{$'profile\u-gender选项:containsgender.remove;}​;}但仍然没有得到任何更改当然,我的意思是它在我的实现中实际上不起作用,但我想它可以帮助其他人。你的答案很清楚。
$('#selectBox  option:eq(1)')
$('#selectBox option:contains("Selection 1")')