세 개의 옵션이있는 선택 상자가 있습니다. 사용자가 세 가지 옵션 중 하나를 선택하면 그 아래에 특정 div가 나타나기를 원합니다. 세 가지 옵션이 각각 선택되었을 때 어떤 특정 상자가 나타날지 지시하는 코드를 작성하려고합니다. 지금까지 첫 번째 옵션과 관련된 코드에 대해서만 연구했습니다. 그러나 사용자가 선택 상자에서 세 가지 옵션 중 하나를 선택할 때마다 첫 번째 옵션에 대한 기능이 트리거되고 div가 표시됩니다.JS 선택 상자 기능 문제
내 질문은 두 부분 : 1) 내가 특별히 선택한 옵션
2) 위에서 설명한 것을 달성하는 가장 좋은 방법은 무엇입니까을 대상으로 조건부 함수를 작성하려면 어떻게; 선택 상자에서 세 가지 옵션에 대해 세 가지 기능을 효율적으로 정의하려면 어떻게해야합니까?
$(document).ready(function(){
var subTableDiv = $("div.subTableDiv");
var subTableDiv1 = $("div.subTableDiv1");
var subTableDiv2 = $("div.subTableDiv2");
subTableDiv.hide();
subTableDiv1.hide();
subTableDiv2.hide();
var selectmenu=document.getElementById("customfields-s-18-s");
selectmenu.onchange=function(){ //run some code when "onchange" event fires
var chosenoption=this.options[this.selectedIndex].value //this refers to "selectmenu"
if (chosenoption.value ="Co-Op"){
subTableDiv1.slideDown("medium");
}
}
});
HTML : :
<tr>
<div>
<select name="customfields-s-18-s" class="dropdown" id="customfields-s-18-s" >
<option value="Condominium"> Condominium</option>
<option value="Co-Op"> Co-Op</option>
<option value="Condop"> Condop</option>
</select>
</div>
</tr>
<tr class="subTable">
<td colspan="2">
<div style="background-color: #EEEEEE; border: 1px solid #CCCCCC; padding: 10px;" id="Condominium" class="subTableDiv">Hi There! This is the first Box</div>
</td>
</tr>
<tr class="subTable">
<td colspan="2">
<div style="background-color: #EEEEEE; border: 1px solid #CCCCCC; padding: 10px;" id="Co-Op" class="subTableDiv1">Hi There! This is the Second Box</div>
</td>
</tr>
<tr class="subTable">
<td colspan="2">
<div style="background-color: #EEEEEE; border: 1px solid #CCCCCC; padding: 10px;" id="Condop" class="subTableDiv2">Hi There! This is the Third Box.</div>
</td>
</tr>
어떻게 작동하는지 확신 할 수 없다. selectmenu.value는 무엇을 반환 할까? 선택한 옵션의 값은? 이 코드를 연결했지만 작동하도록 할 수 있습니다. onChange 트리거와 함께 사용해야합니까? – Thomas
jQuery'change' 함수는 onChange 핸들러입니다. 'this.value'는 선택 상자의 값을 반환해야합니다. 문제는 id 선택기의 해시를 놓친 것입니다. 지금 고쳤다. 네, 맞습니다 : –
그래서 난 그냥 대신에 내가 원하는 기능을 플러그인 할 수 있습니다. – Thomas