我有一个带有select元素的表单,其中包含从外部源填充的类别列表。当我提交表单时,我希望能够发布所选选项(category_id)的值的参数,这可以按预期工作。但是,我还想传递第二个参数(category_name),该参数当前是select选项的文本。
为了清楚起见,下面是select元素的一个非常简单的表示:
<select name="category_id" id="category_id">
<option value='1'>All</option>
<option value='2'>Category 1</option>
<option value='3'>Category 2</option>
</select>
我想知道这样做的最佳方法是什么。我是否需要使用Javascript或者是否有某些方法可以通过HTML进行此操作?为什么它值得我使用Rails构建应用程序,所以如果有一个聪明的方法来使用框架,这也是非常有用的知识。
提前感谢您的帮助。
戴夫
答案 0 :(得分:3)
您可以更改值,使其包含两个值,然后将它们拆分在服务器上:
<select name="category_id" id="category_id">
<option value='1|All'>All</option>
<option value='2|Category 1'>Category 1</option>
<option value='3|Category 2'>Category 2</option>
</select>
或者使用一些javascript并更新隐藏字段:
HTML
<select name="category_id" id="category_id">
<option value='1'>All</option>
<option value='2'>Category 1</option>
<option value='3'>Category 2</option>
</select>
<input type="hidden" id="category_name" name="category_name" />
JS
function updateNameValue() {
$('#category_name').val($('#category_id option:selected').text());
}
$('#category_id').change(updateNameValue);
updateNameValue(); // Call function here to make sure initial value is set