2014-04-01 9 views
2
<select> 
    <option value="">Select</option> 
    <option value="10000">Minimum Coverage</option> 
    <option value="25000">Average Coverage</option> 
    <option value="">Other</option> 
</select> 

필드의 유효성 검사 규칙에서 빈 문자열이나 숫자 값 이외의 값을 허용하지 않으므로 "선택"과 "기타"에 빈 값이 있어야합니다.같은 값으로 두 옵션을 변경하는 경우 Select change 이벤트를 감지하는 방법은 무엇입니까?

결론은 사용자가 "선택"하고 "기타"를 클릭 할 때를 감지 할 수 있어야하는지입니다. 가능한가?

편집 : onChange가 실행되지 않는 것 같습니다.

+0

'onChange'가 실행되는 것을 보여주는 데모를 만들 수 있습니까? – tymeJV

+0

그들 중 하나에게'-1' 값 (또는 선택 항목의 범위를 벗어나는 다른 값)을주고'onchange'에서 그 값을 확인하십시오 – rgthree

답변

5

selectedIndex 속성을 확인할 수 있습니다. 항목이 변경 될 때마다 문제가 발생하기를 원하면 onchange 이벤트 바인딩을 사용하십시오.

document.getElementsByTagName('select')[0].onchange = function() { 
    var index = this.selectedIndex; 
    var inputText = this.children[index].innerHTML.trim(); 
    console.log(inputText); 
} 

FIDDLE

2

가장 확실하게 변경된 옵션은 동일한 값이있는 경우에도, 터집니다 change 이벤트 다음 change 이벤트 핸들러에서

jsfiddle.net/kyw2E

, 당신은 this.selectedIndex 속성을 검사 할 수 있습니다 어떤 <option>이 선택되었는지 확인하십시오. 선택한 옵션의 text 속성을 확인하십시오. 도움이된다면 :

coverageSelector.onchange = function (e) { 
    var selectedOption = this[this.selectedIndex]; 
    var selectedText = selectedOption.text; 
}