22

HTML 规范中的任何要求是否说明avalue中的optionsselect必须是唯一的?

我的问题是关于重复values 的有效性。忽略以下代码块中的所有不切实际,是否select有效?

<select id="produce" multiple>
    <option value="2.00">Apple</option>
    <option value="1.50">Banana</option>
    <option value="1.50">Carrot</option>
</select>

<input id="total" type="text">

<script>
    $('#produce').on('change',function(e) {
        var sum = 0;
        $('#produce option:selected').each(function() {
            sum += parseFloat($(this).val());
        });
        $('#total').val(sum.toFixed(2));
    });
</script>
4

3 回答 3

14

option列表中的值select不影响select元素的有效性。

您需要记住的一件事是,id元素的 必须是唯一的,以确保正确访问该元素的一致性。id如果多个元素存在重复s,id则将选择该元素的最后一个实例。您绝对不必担心列表中options的值重复。select

这甚至可能也是必需的,例如:

<select>
    <option value="fruit">mango</option>
    <option value="flower">rose</option>
    <option value="fruit">pineapple</option>
    <option value="flower">lotus</option>
    <option value="flower">lily</option>
</select>

现在,如果用户选择 、 或 中的任何一个roselotuslily选择元素的值将是flower,如果选择了mangopineapple,则元素的值select将是fruit。所以它完全没问题,你有时可能需要这个。

于 2013-10-31T18:54:18.743 回答
4

不,没有这样的要求。所有 HTML 规范都将value属性简单地定义为具有文本 (CDATA) 值而不施加任何限制。

当然,这只是形式上的一面。很难想象在同一个元素中具有相同属性的两个option元素是有意义的情况。它在形式上是有效的,但如果你认为你需要它,你可能误分析了一些东西。selectvalue

于 2013-10-31T19:07:17.080 回答
1

是的,这select是有效的。s的值option不必是唯一的。

这是一个 JSFiddle 演示

Live Demo

于 2013-10-31T18:34:53.970 回答