사용자가 우선 순위로 선택할 수있는 세 개의 선택 상자가 있습니다. 나는이 예를 위해 스포츠를 사용했다. 현재 나는 첫 번째 상자가 완료 될 때까지 두 번째 및 세 번째 우선 순위를 숨기기 위해 CSS를 설정했습니다.다른 선택 상자에 따라 선택 옵션 사용 안 함
문제점은 값이 모두 중복되어 IE를 사용하지 못하게하려는 것입니다. 사용자가 "골프"를 선택하면 priority2 및 priority3에서이 기능을 사용하지 않아야합니다. 또한 사용자가 우선 순위 2에 대해 "Football"을 선택하면 "Golf"와 "Football"이 모두 비활성화되어야합니다.
HTML :
<form>
<table>
<tr><td>
<label for="Priority">Please state your priorities</label></td><td>1st PRIORITY
<select class="formSelect" name="priority1" onChange="p1(priority1);" onClick="p1(priority1);" width="175px" id="priority1" size="1" tabindex="22";>
<option value="0">No Preference</option>
<option value="1">Football</option>
<option value="2">Golf</option>
<option value="3">Tennis</option>
<option value="4">Boxing</option>
</select>
</td>
<td>2nd PRIORITY
<select name="priority2" class="chidden" onChange="p2(priority2);" onClick="p2(priority2);" width="175px" id="priority2" size="1" tabindex="22";>
<option value="0">No Preference</option>
<option value="1">Football</option>
<option value="2">Golf</option>
<option value="3">Tennis</option>
<option value="4">Boxing</option>
</select>
</td>
<td>3rd PRIORITY
<select name="priority3" class="chidden" width="175px" id="priority3" size="1" tabindex="22";>
<option value="0">No Preference</option>
<option value="1">Football</option>
<option value="2">Golf</option>
<option value="3">Tennis</option>
<option value="4">Boxing</option>
</select>
</td>
</tr>
</table></form>
CSS :
.chidden {visibility: hidden;}
.cvisible {visibility: visible;}
자바 스크립트 : 코드의 품질, 순간의 단지 시작에 대한
var priority1 = document.getElementById("priority1");
var priority2 = document.getElementById("priority2");
var priority3 = document.getElementById("priority3");
function p1(priority1) {
if(document.getElementById("priority1").selectedIndex > 0){
document.getElementById("priority2").className="cvisible";
}
else{
document.getElementById("priority2").className="chidden";
document.getElementById("priority2")[0].selected = "1";
document.getElementById("priority3").className="chidden";
document.getElementById("priority3")[0].selected = "1";
}
}
function p2(priority2) {
if(document.getElementById("priority2").selectedIndex > 0){
document.getElementById("priority3").className="cvisible";
}
else{
document.getElementById("priority3").className="chidden";
document.getElementById("priority3")[0].selected = "1";
}
}
죄송합니다. 선택을 비활성화하기 위해 다음을 사용하려고했지만 구현 방법을 모르겠습니다. 나는 이것에 대한 어떤 도움에도 감사 할 것이다. (Javascript에서);
//for (var i=0; i< document.getElementById("priority2").length; i++){
//if(document.getElementById("priority1").selectedIndex == document.getElementById("priority2")[i]){
// document.getElementById("priority2")[i].disabled = true;
//}
//}
감사합니다.html의 옵션을 수동으로 비활성화하는 방법을 알고 있습니다. 그러나 이것은 체인 된 선택이므로 첫 번째 옵션에서 선택된 항목을 선택하고 priority2 및 3 개의 선택 상자에서이 항목을 비활성화해야합니다. 따라서 자바 스크립트에 대한 필요성은 – skippy
@ Bandon 많은 도움이됩니다. 그러나 위의 작업은 jquery를 사용하는 경우와 이후 b) 사용자가 여전히 뒤로 작업하는 동일한 값을 선택할 수 있습니다 (예 : 첫 번째 상자 선택, 세 번째 상자 선택 및 세 번째 상자와 같은 값을 가진 두 번째 상자 선택). 어쨌든 도움 주셔서 감사합니다. 답변을 평가했습니다. – skippy
jquery가 다시 도움을 주셔서 감사합니다. 환상적으로 작동합니다. 나는 이것을 버너에 넣고 프로젝트의 다른 요소들에 대해 작업했다. 일단 자바 스크립트로 업데이트 할 것이다. – skippy