2014-12-29 4 views
-1

다섯 개의 옵션에 동일한 값이 있습니다. 첫 번째 색인 대신 옵션 태그의 모든 색인을 선택하는 방법이 있습니까?첫 번째 인덱스가 아닌 드롭 다운 값을 선택하는 모든 솔루션

는이 같은

나는 약간의 속임수를 썼는지

var duplicates = []; 
 

 
function checkResult(){ 
 
var box1 = document.getElementById('box_g1'); 
 
var box2 = document.getElementById('box_g2'); 
 
var box3 = document.getElementById('box_g3'); 
 
var box4 = document.getElementById('box_g4'); 
 
var box5 = document.getElementById('box_g5'); 
 

 
var b1 = box1.options[box1.selectedIndex].value; 
 
var b2 = box2.options[box2.selectedIndex].value; 
 
var b3 = box3.options[box3.selectedIndex].value; 
 
var b4 = box4.options[box4.selectedIndex].value; 
 
var b5 = box5.options[box5.selectedIndex].value; 
 
    
 
console.log(b1); 
 
console.log(b2); 
 
console.log(b3); 
 
console.log(b4); 
 
console.log(b5);  
 

 
var arr = [b1,b2,b3,b4,b5]; 
 
var hash = []; 
 

 
for (var n=arr.length; n--;){ 
 
    if (typeof hash[arr[n]] === 'undefined') hash[arr[n]] = []; 
 
    
 
    hash[arr[n]].push(n); 
 
} 
 

 
for (var key in hash){ 
 
    if (hash.hasOwnProperty(key) && hash[key].length > 1){ 
 
     duplicates.push(key); 
 
    } 
 
} 
 

 
if(duplicates.length > 0){ 
 
    alert("duplicate found"); 
 
}else{ 
 
    alert("No duplicate"); 
 
} 
 
duplicates.length =0;  
 
}
<select name="n1" id="box_g1"> 
 
    <option value="Default">Default</option> 
 
    <option value="A">A</option> 
 
    <option value="B">B</option> 
 
    <option value="C">C</option> 
 
    <option value="D">D</option> 
 
    <option value="E">E</option> 
 
</select> 
 
<br/> 
 

 
<select name="n2" id="box_g2"> 
 
    <option value="Disabled">Disabled</option> 
 
    <option value="A">A</option> 
 
    <option value="B">B</option> 
 
    <option value="C">C</option> 
 
    <option value="D">D</option> 
 
    <option value="E">E</option> 
 
</select> 
 
<br/> 
 
<select name="n3" id="box_g3"> 
 
    <option value="Disabled">Disabled</option> 
 
    <option value="A">A</option> 
 
    <option value="B">B</option> 
 
    <option value="C">C</option> 
 
    <option value="D">D</option> 
 
    <option value="E">E</option> 
 
</select> 
 
<br/> 
 
<select name="n4" id="box_g4"> 
 
    <option value="Disabled">Disabled</option> 
 
    <option value="A">A</option> 
 
    <option value="B">B</option> 
 
    <option value="C">C</option> 
 
    <option value="D">D</option> 
 
    <option value="E">E</option> 
 
</select> 
 
<br/> 
 
<select name="n5" id="box_g5"> 
 
    <option value="Disabled">Disabled</option> 
 
    <option value="A">A</option> 
 
    <option value="B">B</option> 
 
    <option value="C">C</option> 
 
    <option value="D">D</option> 
 
    <option value="E">E</option> 
 
</select> 
 

 
<br/> 
 
<br/> 
 
<input type="submit" value="Check Result" onclick="checkResult();"/>
을 위해 바이올린을 JS 고려하십시오. 그러나 그것이 가능한지 아닌지를 확인할 수는 없습니다.

상자 2, 상자 3, 상자 4 및 상자 5에 대해 사용자가 상자 1 대신 상자에 'Disbaled'옵션을 선택하면.

사용자에게 "중복 발견됨"이 표시됩니다.

현재 "사용 안 함" 옵션을 선택하면 중복되지 않는 것으로 나타납니다.

+0

'hash'는 배열이며, 인덱스는 정수 여야합니다. 그러나'arr [n]'은 문자열입니다. 배열이 아닌 객체를 사용해야합니다. – Barmar

+0

첫 번째'for' 루프에서'hash()'에 추가하기 전에'if (arr [n]! = "Disabled")'를 확인할 수는 없습니까? – Rhumborl

+0

BTW, 그냥'var b1 = box1.value;'라고 쓸 수 있습니다. 선택 값은 선택한 옵션의 값입니다. – Barmar

답변

0

답장을 보내 주셔서 감사합니다. 나는 디자인을 바꾸었다.

관련 문제