为什么我需要在下拉列表中为我的选项提供值属性? JQuery相关

时间:2010-05-10 06:21:14

标签: jquery

到目前为止,在我的网络开发经验中,我注意到几乎所有的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');

但我仍然想知道为什么要这样做。

谢谢!

2 个答案:

答案 0 :(得分:2)

有时值与标签不同。示例:我的应用程序使用法语和荷兰语。我用英语编码值并使用它们来检查我的代码,但是用户会用他自己的语言看到该选项。

除此之外,您可以选择BarCheese作为选项,或者离开它。请记住,如果标签有一天发生变化(经理/客户想要它,应用程序被翻译,......),你将不得不使用旧标签作为价值。

W3-org specification注意OPTION的'value'属性为IMPLIED(默认为元素内容),因此在语法上允许省略它。

答案 1 :(得分:1)

  

对我来说,很多次看起来不那么简单   明确而不仅仅是能够检查   val()对阵BarCheese。那么为什么呢   它是大多数Web开发人员/设计人员   指定值参数而不是   只是让选项实际值   是它的价值吗?

大部分value与下拉列表中的可见部分(BarCheese)相同,但事实并非如此。当您希望在提交表单时使用服务器端语言检索下拉列表的值时,指定value会很有用。您将了解用户选择的选项。此外,这使您的标记语义化。