셀렉트에 따라 다른내용시 필수입력처리

셀렉트에 따라 다른내용시 필수입력처리

QA

셀렉트에 따라 다른내용시 필수입력처리

본문

아래와 같이 글쓰기 페이지에서 

선택한 셀렉트 값에 따라 탭 내용이 보여지게 하는데 있어서

input폼에 required 처리를 하려고 하는데요.

문제는 이렇게 해놓으니까 화면상에만 안보이지 실제로 남아있게 되니

필수입력을 히든탭에도 해줘야 되더라구요,

그래서 값에 따라 아예 폼을 없애줘야 될듯한데

그러려면 탭내용들을 php if문으로 처리하는방법이 있을까요?


 
//셀렉트
<select name='wr_6' id='wr_6' required>
<option value="">선택하세요.</option>
<option value="딸기" <?php echo ($write['wr_6'] == "딸기") ? "selected" : "";?>>딸기</option>
<option value="수박" <?php echo ($write['wr_6'] == "수박") ? "selected" : "";?>>수박</option>
</select>
 
//탭내용
<div class="tab1">
딸기 <input type="text" name="wr_7" value="<?=$write['wr_7']?>" id="wr_7" class="frm_input" maxlength="20" required> 상자
</div>
<div class="tab2">
수박 <input type="text" name="wr_8" value="<?=$write['wr_8']?>" id="wr_8" class="frm_input" maxlength="20" required> 통
</div>
 
 
//스크립트
<script>
$("#wr_6").change(function(){
    if( $(this).val() == '딸기' ) {
        $(".tab1").show();
    }
    else{
        $(".tab1").hide();
    } 
})
$("#wr_6").change(function(){
    if( $(this).val() == '수박' ) {
        $(".tab2").show();
    }
    else{
        $(".tab2").hide();
    } 
})
$("#wr_6").trigger( 'change' );
</script>

 

혹시 이렇게 하는게 맞나요?


<? ($write['wr_6'] == "딸기") ? "selected" : "";?>
<div class="tab1">
딸기 <input type="text" name="wr_7" value="<?=$write['wr_7']?>" id="wr_7" class="frm_input" maxlength="20" required> 상자
</div>
<? } else {?>
<? } ?>
<? ($write['wr_6'] == "수박") ? "selected" : "";?>
<div class="tab2">
수박 <input type="text" name="wr_8" value="<?=$write['wr_8']?>" id="wr_8" class="frm_input" maxlength="20" required> 통
</div>
<? } else {?>
<? } ?>

이 질문에 댓글 쓰기 :

답변 3

스크립트 부분을 아래와 같이 수정해보세요.


<script>
$("#wr_6").change(function(){
if( $(this).val() == '딸기' ) {
$(".tab1").show();
$("#wr_7").attr("required",true);
}
else{
$(".tab1").hide();
$("#wr_7").attr("required",false);
}
if( $(this).val() == '수박' ) {
$(".tab2").show();
$("#wr_8").attr("required",true);
}
else{
$(".tab2").hide();
$("#wr_8").attr("required",false);
}
})
$("#wr_6").trigger( 'change' );
</script>

굳이 아래 부분으로 수정하지 말고,

원래 코딩하셨던 윗부분만 넣으시고 테스트 해보면 아무런 이상이 없습니다.

 hide()  된 부분의  required 는 필수값 체크하지 않습니다.


$( '#wr_6' ).change( function() {
    var val = this.value ? this.value : false;
    $( '.tab1, .tab2' ).each( function() {
        var flag = val && this.innerText.indexOf(val) > -1; 
        $( this ).toggle( flag ).children().prop( 'required', flag );
    });
});
$( '#wr_6' ).trigger( 'change' );
답변을 작성하시기 전에 로그인 해주세요.
전체 44
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT