채택완료

자바스크립트 관련 질문입니다. 도와주세요 ^^

2015-04-23 (목) 16:21:13 2,794

폼안에 들어있는 내용입니다.

체크하면 활성화 및 비활성화하는 내용인데

인풋박스 name 값이 하나일때는 각 인풋이 늘어날때마다 스크립트를 추가하면 되는데...

문제(질문)는

인풋박스가 여러개 있고 name이 같은 배열의 경우는 어디를 손봐야 하는 건지 모르겠습니다.

참고로

인풋박스는 대략 5개인데 name='wr_31[]' 이렇게 하여 wr_31 필드에 배열로 저장하고 있습니다.

조언좀 부탁드립니다 감사합니다

<script>
function f_check(){
if(document.form.checkbutton.checked==true){
document.form.textbox.disabled = true;
}
else if(document.form.checkbutton.checked==false){
document.form.textbox.disabled = false;
}
}
</script>


<input type='text' name='wr_31'>
<input type='checkbox' name='checkbutton' onclick='f_check()'>
 

|

답변 6개

채택된 답변
+20 포인트
2015-04-23 (목) 16:47:22

jquery에 prev라고 있어요.

$(this).prev()하시면 input이 text , checkbox, text, checkbox 이렇게 되어있으니 체크박스 누르면 이전것인 text를 선택할수 있어요.

2015-04-23 (목) 17:34:07
<input type="text" name="wr_31[]">
<input type="checkbox" name="checkbutton" onclick="f_check()">
<br />
<input type="text" name="wr_31[]">
<input type="checkbox" name="checkbutton" onclick="f_check()">
<br />
<input type="text" name="wr_31[]">
<input type="checkbox" name="checkbutton" onclick="f_check()">
<br />
<input type="text" name="wr_31[]">
<input type="checkbox" name="checkbutton" onclick="f_check()">

<script type="text/javascript">
function f_check(obj) {
	var chk = document.getElementsByName("checkbutton");
	var inp = document.getElementsByName("wr_31[]");
	for(i=0; i<chk.length; i++) {
		inp[i].disabled = chk[i].checked ? true : false;
	}
}
</script>

이미 하셨다고 하시니...그냥 올립니다. ㅎ

해결했습니다. 드래곤된다님 조언 감사합니다 ㅠㅠ

드래곤된다님 답변 감사합니다.

제가 지식이 좀 부족하여 내용을 이해못하고 있습니다. ㅠㅠ

저의 질문은 체크박스 체크시 다수의 input박스 활성/비활성을 구현하였는데

문제는 다수의 input 박스가 배열이라서 name이 wr_31[] 로 같아서 고민하는 경우입니다...

2015-04-23 (목) 16:59:47

previousSibling 현재 선택자의 이전이웃선택입니다. 

jquery 예제는 봤는데 그걸 사용하지 않고 순수 스크립트로 구현하려고 합니다. 안되려나요? ㅠㅠ

답변을 작성하려면 로그인이 필요합니다.