채택완료

체크박스 활성화 비활성화 질문입니다.

2016-09-27 (화) 10:58:14 5,369

<script>

 function checkDisable(frm)

        {

            if( frm.chkbox.checked == true ){

               frm.textbox.disabled = true;

            } else 

            {

               frm.textbox.disabled = false;

            }

        }

</script>

<form action="./supplie_reg_list.php" onsubmit="return goForm(this)" method="get">

    <select name="sfl" id="sfl">

        <option value="">-선택-</option>

        <option value="wr_subject" <?=$sfl == 'wr_subject' ? 'selected' : ''?>>고객업체명</option>

        <option value="wr_5" <?=$sfl == 'wr_5' ? 'selected' : ''?>>현장명</option>

        <option value="wr_content" <?=$sfl == 'wr_content' ? 'selected' : ''?>>장비명</option>

    </select>

<input type="text" name="stx" id="stx" value="<?=$stx?>" />

-----------------제가 하려고 하는 부분-------------------------

* 기간별 검색시 체크 

<input type="checkbox" onclick="checkDisable(this)" name="wr_1" value="1" <?php if($_REQUEST['wr_1']) {echo 'checked'; $a_display = 'true';} else { $a_display = 'false';}?>/>

<input type="hidden" name="textbox" style="display:<?=$a_display;?>" /><?=date_select($wr_2,"start") ?> 부터 <?= date_select($wr_3,"end")?> 까지

<input type="submit" value="검색" />

</form>

-----------------------예제부분은 잘 됩니다.---------------------

<form>

<input name="chkbox" type="checkbox" onClick="checkDisable(this.form)">텍스트박스 비활성<br>

<input name="textbox" type="text">

</form>

-----------------------------------------------------------------

체크를 하면 활성화 , 체크가 안돼있을땐 비활성화를 하려고합니다.

예제부분처럼 하면 체크를 했을때 텍스트창이 비활성화가 되는데

제가 하려고 하는 날짜부분은 전혀 변화가 없습니다.

어디가 잘못된건지 도와주세요.


답변 2개 / 댓글 4개

채택된 답변
+20 포인트
2016-09-27 (화) 11:10:57
Copy
function checkDisable(frm) {    if( frm.checked == true ) {        document.getElementsByName("textbox")[0].disabled = true;    } else  {        document.getElementsByName("textbox")[0].disabled = false;    }}
 

<input type="checkbox" onclick="checkDisable(this)"

여기에서 this로 넘기셨는데 실제 함수에선 엉뚱한 걸 체크하셨네요.

* textbox를 감싸고 있는 form 이름이 없어서 저렇게 했습니다. 

답변에 대한 댓글 3개

음.. this로 그대로 두고 스크립트를 똑같이 바꿔보았는데 역시나 변화가 없습니다. 휴ㅠ
흠.. dste_select를 혹시 input안에 넣어줘야하는걸까요..?
textbox를 감싸고 있는 form에 이름을 주고
document.getElementsByName("textbox")[0].disabled
이걸
document.폼이름.textbox.disabled
이렇게 바꿔 보세요.
2016-09-27 (화) 11:14:39

비교해서 말씀 드림 되는지 모르겠지만서도... 일단 this와 this.form 차이가 보이네요.

예제로 잘 되신다는 부분엔 this.form 하시고 안되신다는 소스에는 this만 되어 있네요. 

답변에 대한 댓글 1개

처음에 this.form으로 했었는데 안돼서 한번 바꿔보았습니다만.. 안되더군요ㅠㅠ

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