3단 셀렉트박스 질문드리겠습니다 ㅠ
본문
3단셀렉트 박스를 만들고있는데요 2단 3단도 안나오고 그러는데 왜그런걸까요 ㅠㅠ?
여기 원본소스입니다
<tr>
<th rowspan="4" scope="row" style="padding-top: 10px;"></th>
<td>
<select data-id="a" name="wr_1" style="width:100%;">
<option value="">통신사를 선택해주세요.</option>
<option value="KT">KT</option>
<option value="SK">SK</option>
<option value="LG">LG</option>
</select>
<select data-id="b" name="wr_1" style="width:100%;">
<option value="">제조사를 선택해주세요.</option>
</select>
<select data-id="c"name="wr_1" style="width:100%;">
<option value="">휴대폰를 선택해주세요.</option>
</select>
<td>
</tr>
</div>
<input type="submit" value="검색하기" class="search_bt">
</form>
</div>
</div>
<style>
input, button {
margin: 0;
padding: 0;
font-size: 1em;
width: 15px;
height: 20px;
}
</style>
<script type="text/javascript">
$(function() {
$("select[data-id=a]").change(function() {
var temp = $("select[data-id=b]");
var a = $(this).val();
temp.children().remove();
temp.append('<option value="">선택하세요</option>');
if(a == 'KT'){
temp.append('<option value="삼성전자">삼성전자</option>');
temp.append('<option value="애플">애플</option>');
temp.append('<option value="LG">LG</option>');
temp.append('<option value="">기타</option>');
}
if(a == 'SK'){
temp.append('<option value="">삼성전자</option>');
temp.append('<option value="">애플</option>');
temp.append('<option value="">LG</option>');
temp.append('<option value="">기타</option>');
}
if(a == 'LG'){
temp.append('<option value="">삼성전자</option>');
temp.append('<option value="">애플</option>');
temp.append('<option value="">LG</option>');
temp.append('<option value="">기타</option>');
}
$("select[data-id=b]").change(function() {
var temp = $("select[data-id=c]");
var b = $(this).val();
temp.children().remove();
temp.append('<option value="">선택하세요</option>');
if(b == '삼성전자'){
temp.append('<option value="KT.삼성전자.갤럭시노트9 512G.">갤럭시노트9 512G</option>');
temp.append('<option value="KT.삼성전자.갤럭시노트9.">갤럭시노트9</option>');
temp.append('<option value="KT.삼성전자.갤럭시 S9 64GB.">갤럭시 S9 64GB</option>');
temp.append('<option value="KT.삼성전자.갤럭시 S9plus 64GB.">갤럭시 S9plus 64GB</option>');
}
if(b == '애플'){
temp.append('<option value="SK.삼성전자.갤럭시노트9 512G.">갤럭시노트9 512G</option>');
temp.append('<option value="SK.삼성전자.갤럭시노트9.">갤럭시노트9</option>');
temp.append('<option value="SK.삼성전자.갤럭시 S9 64GB.">갤럭시 S9 64GB</option>');
temp.append('<option value="SK.삼성전자.갤럭시 S9plus 64GB.">갤럭시 S9plus 64GB</option>');
}
if(b == 'LG'){
temp.append('<option value="KT.삼성전자.갤럭시노트9 512G.">갤럭시노트9 512G</option>');
temp.append('<option value="KT.삼성전자.갤럭시노트9.">갤럭시노트9</option>');
temp.append('<option value="KT.삼성전자.갤럭시 S9 64GB.">갤럭시 S9 64GB</option>');
temp.append('<option value="KT.삼성전자.갤럭시 S9plus 64GB.">갤럭시 S9plus 64GB</option>');
}
});
});
</script>
답변 3
코드 한번 확인해보세요.
올려주신거 복사해서 넣어봤었는데 jquery적힌 쪽에 제대로 닫히지 않은 부분이 있더군요.
밑에 제가 붙여놓은거 써보시면 잘 동작할꺼에요.
<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>jQuery</title>
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
</head>
<body>
<div>
<table>
<tr>
<th rowspan="4" scope="row" style="padding-top: 10px;"></th>
<td>
<select data-id="a" name="wr_1" style="width:100%;">
<option value="">통신사를 선택해주세요.</option>
<option value="KT">KT</option>
<option value="SK">SK</option>
<option value="LG">LG</option>
</select>
<select data-id="b" name="wr_1" style="width:100%;">
<option value="">제조사를 선택해주세요.</option>
</select>
<select data-id="c"name="wr_1" style="width:100%;">
<option value="">휴대폰를 선택해주세요.</option>
</select>
<td>
</tr>
</table>
</div>
<style>
input, button {
margin: 0;
padding: 0;
font-size: 1em;
width: 15px;
height: 20px;
}
</style>
<script type="text/javascript">
$(function() {
$("select[data-id=a]").change(function() {
var temp = $("select[data-id=b]");
var a = $(this).val();
temp.children().remove();
temp.append('<option value="">선택하세요</option>');
if(a == 'KT'){
temp.append('<option value="삼성전자">삼성전자</option>');
temp.append('<option value="애플">애플</option>');
temp.append('<option value="LG">LG</option>');
temp.append('<option value="">기타</option>');
}
if(a == 'SK'){
temp.append('<option value="">삼성전자</option>');
temp.append('<option value="">애플</option>');
temp.append('<option value="">LG</option>');
temp.append('<option value="">기타</option>');
}
if(a == 'LG'){
temp.append('<option value="">삼성전자</option>');
temp.append('<option value="">애플</option>');
temp.append('<option value="">LG</option>');
temp.append('<option value="">기타</option>');
}
});
$("select[data-id=b]").change(function() {
var temp = $("select[data-id=c]");
var b = $(this).val();
temp.children().remove();
temp.append('<option value="">선택하세요</option>');
if(b == '삼성전자'){
temp.append('<option value="KT.삼성전자.갤럭시노트9 512G.">갤럭시노트9 512G</option>');
temp.append('<option value="KT.삼성전자.갤럭시노트9.">갤럭시노트9</option>');
temp.append('<option value="KT.삼성전자.갤럭시 S9 64GB.">갤럭시 S9 64GB</option>');
temp.append('<option value="KT.삼성전자.갤럭시 S9plus 64GB.">갤럭시 S9plus 64GB</option>');
}
if(b == '애플'){
temp.append('<option value="SK.삼성전자.갤럭시노트9 512G.">갤럭시노트9 512G</option>');
temp.append('<option value="SK.삼성전자.갤럭시노트9.">갤럭시노트9</option>');
temp.append('<option value="SK.삼성전자.갤럭시 S9 64GB.">갤럭시 S9 64GB</option>');
temp.append('<option value="SK.삼성전자.갤럭시 S9plus 64GB.">갤럭시 S9plus 64GB</option>');
}
if(b == 'LG'){
temp.append('<option value="KT.삼성전자.갤럭시노트9 512G.">갤럭시노트9 512G</option>');
temp.append('<option value="KT.삼성전자.갤럭시노트9.">갤럭시노트9</option>');
temp.append('<option value="KT.삼성전자.갤럭시 S9 64GB.">갤럭시 S9 64GB</option>');
temp.append('<option value="KT.삼성전자.갤럭시 S9plus 64GB.">갤럭시 S9plus 64GB</option>');
}
});
});
</script>
</body>
</html>
적으신 글의 68라인뒤에 }); 를 추가해 보세요
temp.append('<option value="">기타</option>');
}
});//---> 이부분 추가
$("select[data-id=b]").change(function() { var temp = $("select[data-id=c]");
소스가 좀 바뀌어야해서...이걸로 확인해보세요 input에 name들 변경하고 hidden인 input추가,
$("select[data-id=c]").change(function(){} 추가 하였습니다. select box만들어질때 쓰인 값들도 좀 잘못되서 수정했구요
<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>jQuery</title>
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
</head>
<body>
<div>
<input type='hidden' name='wr_1' val=''>
<table>
<tr>
<th rowspan="4" scope="row" style="padding-top: 10px;"></th>
<td>
<select data-id="a" name="sel1" style="width:100%;">
<option value="">통신사를 선택해주세요.</option>
<option value="KT">KT</option>
<option value="SK">SK</option>
<option value="LG">LG</option>
</select>
<select data-id="b" name="sel2" style="width:100%;">
<option value="">제조사를 선택해주세요.</option>
</select>
<select data-id="c"name="sel3" style="width:100%;">
<option value="">휴대폰를 선택해주세요.</option>
</select>
<td>
</tr>
</table>
</div>
<style>
input, button {
margin: 0;
padding: 0;
font-size: 1em;
width: 15px;
height: 20px;
}
</style>
<script type="text/javascript">
$(function() {
$("select[data-id=a]").change(function() {
var temp = $("select[data-id=b]");
var a = $(this).val();
temp.children().remove();
temp.append('<option value="">선택하세요</option>');
if(a == 'KT'){
temp.append('<option value="삼성전자">삼성전자</option>');
temp.append('<option value="애플">애플</option>');
temp.append('<option value="LG">LG</option>');
temp.append('<option value="">기타</option>');
}
if(a == 'SK'){
temp.append('<option value="삼성전자">삼성전자</option>');
temp.append('<option value="애플">애플</option>');
temp.append('<option value="LG">LG</option>');
temp.append('<option value="">기타</option>');
}
if(a == 'LG'){
temp.append('<option value="삼성전자">삼성전자</option>');
temp.append('<option value="애플">애플</option>');
temp.append('<option value="LG">LG</option>');
temp.append('<option value="">기타</option>');
}
});
$("select[data-id=b]").change(function() {
var temp = $("select[data-id=c]");
var b = $(this).val();
temp.children().remove();
temp.append('<option value="">선택하세요</option>');
if(b == '삼성전자'){
temp.append('<option value="갤럭시노트9 512G.">갤럭시노트9 512G</option>');
temp.append('<option value="갤럭시노트9">갤럭시노트9</option>');
temp.append('<option value="갤럭시 S9 64GB.">갤럭시 S9 64GB</option>');
temp.append('<option value="갤럭시 S9plus 64GB.">갤럭시 S9plus 64GB</option>');
}
if(b == '애플'){
temp.append('<option value="갤럭시노트9 512G.">갤럭시노트9 512G</option>');
temp.append('<option value="갤럭시노트9.">갤럭시노트9</option>');
temp.append('<option value="갤럭시 S9 64GB.">갤럭시 S9 64GB</option>');
temp.append('<option value="갤럭시 S9plus 64GB.">갤럭시 S9plus 64GB</option>');
}
if(b == 'LG'){
temp.append('<option value="갤럭시노트9 512G.">갤럭시노트9 512G</option>');
temp.append('<option value="갤럭시노트9.">갤럭시노트9</option>');
temp.append('<option value="갤럭시 S9 64GB.">갤럭시 S9 64GB</option>');
temp.append('<option value="갤럭시 S9plus 64GB.">갤럭시 S9plus 64GB</option>');
}
});
});
$("select[data-id=c]").change(function(){
$("input[name=wr_1]").val($("select[data-id=a]").val()+','+$("select[data-id=b]").val()+','+$("select[data-id=c]").val());
});
</script>
</body>
</html>
답변을 작성하시기 전에 로그인 해주세요.