2013-11-04 6 views
1

웹 페이지에 선택 옵션 블록이 있습니다.이 옵션에서 선택한 옵션 중 하나를 실행하려고합니다. 그러나 첫 번째 옵션은 onselect를 실행하지 않습니다. 이전 옵션을 나중에 선택 했더라도.해결 방법 : <Select> 첫 번째로 <option>은 변경 이벤트를 발생시키지 않습니다.

예를 들어, 내 코드를 읽는 경우 :

Settings: 
Sensitivity: <select id="sensitivity" onchange="if (this.selectedIndex) ajaxUpdateConfig();"> 
    <option value="25">25%</option> 
    <option value="50">50%</option> 
    <option value="100" selected>100</option> 
</select> 

가 ... 다음 첫 번째 옵션, 25 %를 선택, 결코 onchange를() 이벤트가 발생하지 않습니다.

마찬가지로 첫 번째 옵션이 기본값이고 사용자가이 값을 변경 한 다음 다시 돌아가려면 onchange 이벤트가 발생하지 않습니다.

참고 : "첫 번째 선택은 변경 이벤트를 생성하지 않습니다."라는 문제에 대한 표준 답변은 더미 옵션을 비활성화하는 것입니다. 하지만이 페이지의 디자인에 맞지 않습니다. 메뉴는 현재 상태를 표시하는 동시에 사용자가 설정을 변경할 수있는 옵션을 제공합니다. 더미 항목은이 페이지의 인터페이스 디자인이 잘못되었습니다.

+0

SLaks가 답을 가지고 있지만, 나는 onselect가 아니라 onchange를 사용하고 싶습니다. – j08691

+0

맞습니다. 그게 내가 onchange보다 다른 다른 옵션을 시도하는 동안 내가 코드를 인용함으로써 얻은 것입니다. 그것은 사실 수정을 위해 교환되어야합니다. – baudot

답변

6

this.selectedIndex은 첫 번째 옵션으로는 0입니다.
0은 허위이므로 if은 절대 실행되지 않습니다.

if을 완전히 없애십시오. 그럴 이유가 없습니다.

관련 문제