如何在下拉列表中使用Ruby表单select helper方法获得一个不是选项的默认选择值

时间:2012-10-31 20:07:52

标签: ruby-on-rails ruby ruby-on-rails-3 form-helpers html-select

好的,所以我正在开发一个外包的项目,现在我可以在投入生产之前加入并修复所有内容。我目前正在尝试修改创建选择表单字段的行。我读了一些在ruby中使用的不同表单助手方法,以及该方法的一些可用选项。

我的问题是我似乎无法弄清楚如何在select元素中显示默认值而不会在下拉选项中显示它。这就是该行目前的样子。

<%= select :profile, :sexual_interest, SEXUAL_INTEREST_ARRAY, {:prompt => 'sexuality'}, {:class => 'selectFull'} %>

我尝试使用以下方法更改部分选项:default =&gt; &#39;性欲&#39;然后尝试:disabled =&gt; &#39;性欲&#39 ;.但我似乎只能从select元素中完全删除该选项,或者将其作为下拉列表中的第一个值并显示为默认值。

如果您在使用ruby表单助手设置选择字段的默认值时遇到问题,请参阅此帖子selecting a default for option field

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

-Alan

1 个答案:

答案 0 :(得分:1)

无法在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>

然后你的javascript看起来像这样:

$("#selectBox").change(function(){
   $("#selectBox option[value='default']").remove();
}​);

jsFiddle

上的示例

<强>选择器

$('#selectBox option[value="SEL1"]')

索引:

$('#selectBox  option:eq(1)')

对于已知文本:

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

希望它可以帮到你!