2013-10-31 2 views
13

select에있는 optionvalue이 고유해야한다는 HTML 사양의 요구 사항이 있습니까?HTML : select에서 각 옵션의 value 속성이 고유해야합니까?

제 질문은 중복 value의 유효 기간에 대한 것입니다. 다음 코드 블록의 모든 비실용 성을 무시하십시오. 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> 
+0

유효해야합니다. 당신이 염려한다면 [validator] (http://html5.validator.nu)를 통해 언제나 코드를 실행할 수 있습니다. –

답변

8

select 요소의 유효성을 중요하지 않습니다 -list selectoption의 값입니다. 다른 것은 그렇게하지 않습니다.

명심해야 할 점 중 하나는 요소의 id이 해당 요소에 올바르게 액세스 할 수 있도록 일관성을 유지해야한다는 것입니다. id이 여러 요소에 중복되는 경우 최신 요소가 선택됩니다. 너 목록에있는 option의 값의 중복에 대해 걱정할 필요가 없습니다.

이것은 심지어 필요할 수도 있습니다.

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

이제 사용자 flower 될 것이다 선택 요소 rose, lotus, lily 값 중 하나를 선택하는 경우 및 경우에 mangopineapple 중 하나가 될 select 요소의 값을 선택한 다음 fruit. 이렇게 완벽하게 OK,이 시간이 필요할 수 있습니다 ..

+3

옵션 태그를 닫아야합니다 : P – usernolongerregistered

+0

@Agony가 필요합니까? 중첩이 없으므로 내용이 어떻게 표시되는지 걱정할 필요가 없습니다. '값'과 관련이 없습니다. –

+0

사용하는 IDE에 따라 예. 그래도 좋은 연습입니다. 그리고 다시, 나는'
'태그를 닫습니다, 그래서 아마도 나는 편집증에 빠졌을 것입니다. – usernolongerregistered

0

예,이 select이 유효합니다. option의 값은 고유 할 필요는 없습니다.

는 여기 JSFiddle 데모를 확실히

Live Demo

2

아니요, 이러한 요구 사항은 없습니다. 모든 HTML 사양은 어떤 제한도 부과하지 않고 단순히 텍스트 (CDATA) 값을 갖는 것으로 value 속성을 정의합니다.

이것은 물론 공식적인 측면입니다. 동일한 value 속성을 가진 동일한 select 요소에 두 개의 option 요소를 갖는 것이 합리적이라고 상상하기는 어렵습니다. 정식으로 유효하지만, 필요하다고 생각되면 아마도 잘못 분석했을 것입니다.

+1

OP는 당신이 어떻게'value'와 함께'options'를 두 개 필요로하는지 꽤 괜찮은 예제를 가지고 있습니다. :) 개인적으로 그런 식으로 주문 메뉴를 만들지는 않겠지 만. – usernolongerregistered

+2

@Agony, 스케치 예제는 동일한 값을 사용하지 않아야하는 경우의 좋은 예입니다. 바른 가격을 얻을 수는 있지만 고객에게 바나나 또는 당근을 제공할지 여부는 알 수 없습니다. –

+0

하하, 나는 그것에 동의한다. HTML을 제어 할 때 항상 끔찍한 생각 인 내부 HTML을 가져온 경우에만이를 찾을 수있는 유일한 방법입니다. 내가 말했듯이, 나는 그런 식으로 주문 메뉴를 만들지 않을 것이다. – usernolongerregistered