2016-08-16 2 views
-2

배열에 넣을 옵션이있는 선택 항목이 있으며 적절한 배열 [x]이 선택되어있는 경우에만 단추를 클릭 할 때 특정 메시지를 알리려고합니다. 그러나 옵션을 무시하고 버튼을 클릭하면 메시지가 표시됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?경고 JS 배열 선택

코드 :

HTML :

<button id="button">Click Me</button> 
<br /> 
<br /> 
<select id = "list" value = "list"> 
    <option id="one" value="one"> 
    one 
    </option> 

    <option id="two" value="two"> 
    two 
    </option> 

    <option id="three" value="three"> 
    three 
    </option> 
</select> 

JS는 :

var listArr = []; 
var button = document.getElementById("button"); 
var list = document.getElementById("list"); 
var selected = document.getElementById("list").selectedIndex; 

for (var i = 0; i < list.options.length; i++) { 
    listArr[i] = list.options[i].value; 
} 

button.onclick = function() { 
    if (selected = [1]) { 
     alert("hello"); 
    } 
}; 
+1

은'경우 (선택 = [1]) { ...}'진술서? – Titus

+0

당신이 잘못했다면 어쩌면 당신이 'if (selected === listArr [1])'가되기를 원했을 것입니다. –

답변

4

이 같은 배열을 비교할 수 없습니다. 대신 리터럴 번호를 사용해야합니다. 내가 제대로 질문을 이해 한 경우 JSFiddle

var listArr = []; 
var button = document.getElementById("button"); 
var list = document.getElementById("list"); 
var selected = document.getElementById("list"); 

for(var i = 0; i < list.options.length; i++) { 
    listArr[i] = list.options[i].value; 
} 

button.onclick = function() { 
    if(selected.selectedIndex == 1) { 
    alert('hello'); 
    } 
}; 
+0

흥미 롭습니다! 많은 감사합니다! –

0

, 당신은 선택의 업데이트 된 값을 필요로 무엇

button.onclick = function() 
{ 
    if(document.getElementById("list").selectedIndex==1) // Also change = to == 
    { 
    alert("hello"); 
    } 
}; 

https://jsfiddle.net/6bs1vjva/1/