到目前为止,在我的网络开发经验中,我注意到几乎所有的Web开发人员/设计人员都选择以这样的方式选择一个值:
<select name="foo">
<option value="bar">BarCheese</option>
// etc.
// etc.
</select>
这是因为最佳做法是这样做吗?我问这个是因为我最近在jQuery和dropdown上做了很多工作,有时候当我需要查看类似的内容时,我会非常恼火:
$('select[name=foo]').val() == "bar");
对我而言,很多时候似乎不太清楚,只能检查对BarCheese
的val()。那么为什么大多数Web开发人员/设计人员指定一个值参数而不是让选项实际值成为它的价值呢?
是的,如果该选项具有值属性,我知道我可以这样做:
$('select[name=foo] option:contains("BarCheese")').attr('selected', 'selected');
但我仍然想知道为什么要这样做。
谢谢!
答案 0 :(得分:2)
有时值与标签不同。示例:我的应用程序使用法语和荷兰语。我用英语编码值并使用它们来检查我的代码,但是用户会用他自己的语言看到该选项。
除此之外,您可以选择BarCheese作为选项,或者离开它。请记住,如果标签有一天发生变化(经理/客户想要它,应用程序被翻译,......),你将不得不使用旧标签作为价值。
W3-org specification注意OPTION的'value'属性为IMPLIED(默认为元素内容),因此在语法上允许省略它。
答案 1 :(得分:1)
对我来说,很多次看起来不那么简单 明确而不仅仅是能够检查 val()对阵BarCheese。那么为什么呢 它是大多数Web开发人员/设计人员 指定值参数而不是 只是让选项实际值 是它的价值吗?
大部分value
与下拉列表中的可见部分(BarCheese
)相同,但事实并非如此。当您希望在提交表单时使用服务器端语言检索下拉列表的值时,指定value
会很有用。您将了解用户选择的选项。此外,这使您的标记语义化。