2011-03-07 4 views
2

나는 선택 태그가 있으며 나방이 선택되었는지 확인하려고합니다.JavaScript - <select> 태그의 옵션이 선택되었는지 확인하는 방법

if (document.registration_form.Birth_Month.value === '') 
{ 
    alert('Please fill select Month!'); 
} 

을하지만 어떤 선택-의 작품이 자바 스크립트와 그들 중 일부,하지 않습니다

<select name="Birth_Month"> 
    <option value="" SELECTED>- Month -</option> 
    <option value="January">January</option> 
    <option value="Fabruary">Fabruary</option> 
    <option value="March">March</option> 
    <option value="April">April</option> 
    <option value="May">May</option> 
    <option value="June">June</option> 
    <option value="July">July</option> 
    <option value="August">August</option> 
    <option value="September">September</option> 
    <option value="October">October</option> 
    <option value="November">November</option> 
    <option value="December">December</option> 
</select> 

그래서이 작업을 수행. 분명히 "- 월 -"을 선택하면 "- 월 -"insted of ""(빈 문자열)이 반환됩니다. 내가 뭘 잘못 했니? 태그 선택을 확인하는 가장 좋은 방법은 무엇입니까?

답변

5

브라우저는 항상 <에 대한 .value 속성이 >을 선택하지 않았다 - 우리는 < 옵션 >의 값 가야하는 데 사용 :

var birthMonth=document.registration_form.Birth_Month; 
if(birthMonth.options[birthMonth.selectedIndex].value===''){ 

지금의 jQuery .val()를 사용합니다. select.value 속성이없는 브라우저는 기억이 나지 않습니다. 브라우저가 너무 오래되어서 더 이상 걱정할 필요가 없습니다. 하지만 jQuery는 select.value를 사용하지 않습니다. 각 옵션을 반복하여 선택한 옵션의 값을 찾습니다.

물론 첫 번째 옵션으로 빈 옵션이 하나 뿐이라는 것을 알고 있으면 selectedIndex == 0을 확인하십시오.

+0

+1! - 당신이 라디오 버튼 그룹에서 가치를 얻고 싶을 때까지 기다리는 방법입니다! –

0

저는 정수가 옵션 값에 대해 더 나은 방법이라고 생각합니다. 아무튼 기본 옵션 값이 빈 문자열 또는 0 값인 경우 아래 스 니펫은 상관하지 않습니다.

var birthMonth = document.registration_form.Birth_Month; 
if(birthMonth.options[birthMonth.selectedIndex].value === false){ 
    alert('Please fill select Month!'); 
} 
관련 문제