첨부파일을 입력하는데 필수값으로 하고 싶은데 어떻게 수정해야 할까요??? 

첨부파일을 입력하는데 필수값으로 하고 싶은데 어떻게 수정해야 할까요??? 

QA

첨부파일을 입력하는데 필수값으로 하고 싶은데 어떻게 수정해야 할까요??? 

사용하는 빌더

기타

그누보드5(영카트) 버전

5.6.23

사용 PHP 버전

7.3

본문

첨부파일을 입력하는데 필수값으로 하고 싶은데 어떻게 수정해야 할까요??? 

 



<li>
                    
                    <label for="file-name-5" class="Pretendard_B">
                     공무원증 · 복무증명서 첨부
                    </label>
                    <div class="gw-file-input-container gw-mt-10 gw-mb-10">
                        <div id="file-name-5" class="file-name">파일을 선택하세요</div>
                        <label for="reg_mb_5" class="gw-file-input-button gw-w-30">파일 선택</label>
                        <input type="file" name="mb_file[]" id="reg_mb_5" onchange="document.getElementById('file-name-5').textContent = this.files[0]?.name || '파일을 선택하세요';">
                    </div>
                    <?php if ($w == 'u' && $member["mb_5"]) { ?>
                        
                    <div class="">
                        <input type="hidden" id="mb_5" class="frm_input" name="mb_5" value="<?php echo $member["mb_5"]; ?>" />
                        <input type="checkbox" id="mb_file_del5" name="mb_file_del[5]" value="1">
                        <label for="mb_file_del5" class="frm_label"><?php echo $member["mb_5"]; ?> 파일 삭제</label>
                    </div>
                    <?php } ?>
                            
                </li>

이 질문에 댓글 쓰기 :

답변 6

<input type="file" name="mb_file[]" id="reg_mb_5" required onchange="document.getElementById('file-name-5').textContent = this.files[0]?.name || '파일을 선택하세요';">

function fregisterform_submit(f) {

    const fileInput = document.getElementById('reg_mb_5');
    const existingFile = document.getElementById('mb_5'); // 기존 파일 존재 여부

    if (!fileInput.files.length && (!existingFile || !existingFile.value)) {
        alert('공무원증 또는 복무증명서를 반드시 첨부해 주세요.');
        fileInput.focus();
        return false;
    }

    // 기존 유효성 고대로

    return true; // 통과 시 제출
}  // 이렇게 처리해주세요

required 속성 추가해주면 됩니다.

<input type="file" name="mb_file[]" id="reg_mb_5" <?php echo ($w == '' ? 'required' : ''); ?> onchange=~

function fregisterform_submit(f) {

  ~

  if (f.w.value == "" && !document.getElementById('reg_mb_5').files.length) {
    alert("공무원증 · 복무증명서를 첨부해주세요.");
    document.getElementById('reg_mb_5').focus();
    return false;
  }

 

  <?php echo chk_captcha_js();  ?>

}

적용이 되는것 같은데 문제는 파일을 첨부하지 안으면 파일을 선택해라등 메시지가 출력이 되었으면 좋겠는데 아무런 반응이 없습니다. 어떻게 해야 할까요??? 

다른것들은 보면   <select name="mb_4" id="mb_4" required class="required"> 안되어 있으면 이쪽으로 이동을 시켜주거나 하는데 파일첨부는 그렇게 못할까요? 

답변 감사합니다. 그런데

최종적으로 이렇게 해도 작동을 못합니다. ㅡㅡ 
 

<li>
                    
                    <label for="file-name-5" class="Pretendard_B">
                     공무원증 · 복무증명서 첨부
                    </label>
                    <div class="gw-file-input-container gw-mt-10 gw-mb-10">
                        <div id="file-name-5" class="file-name">파일을 선택하세요</div>
                        <label for="reg_mb_5" class="gw-file-input-button gw-w-30">파일 선택</label>
                        <input type="file" name="mb_file[]" id="reg_mb_5"  <?php echo ($w == '' ? 'required' : ''); ?> onchange="document.getElementById('file-name-5').textContent = this.files[0]?.name || '파일을 선택하세요';"> 
                    
                        
                    </div>
                    <?php if ($w == 'u' && $member["mb_5"]) { ?>
                        
                    <div class="">
                        <input type="hidden" id="mb_5" class="frm_input" name="mb_5" value="<?php echo $member["mb_5"]; ?>" />
                        <input type="checkbox" id="mb_file_del5" name="mb_file_del[5]" value="1" >
                        <label for="mb_file_del5" class="frm_label"><?php echo $member["mb_5"]; ?> 파일 삭제</label>
                    </div>
                    <?php } ?>
                            
                </li>

 

스크립트 부분에 

 if (f.w.value == "" && !document.getElementById('reg_mb_5').files.length) {
    alert("공무원증 · 복무증명서를 첨부해주세요.");
    document.getElementById('reg_mb_5').focus();
    return false;
  } 


<li>
                    
                    <label for="file-name-5" class="Pretendard_B">
                     공무원증 · 복무증명서 첨부
                    </label>
                    <div class="gw-file-input-container gw-mt-10 gw-mb-10">
                        <div id="file-name-5" class="file-name">파일을 선택하세요</div>
                        <label for="reg_mb_5" class="gw-file-input-button gw-w-30">파일 선택</label>
                        <input type="file" name="mb_file[]" id="reg_mb_5" required <?php echo ($w == '' ? 'required' : ''); ?> onchange="document.getElementById('file-name-5').textContent = this.files[0]?.name || '파일을 선택하세요';" class="frm_input full_input required"> 
                    
                        
                    </div>
                    <?php if ($w == 'u' && $member["mb_5"]) { ?>
                        
                    <div class="">
                        <input type="hidden" id="mb_5" class="frm_input full_input required" name="mb_5" value="<?php echo $member["mb_5"]; ?>" />
                        <input type="checkbox" id="mb_file_del5" required name="mb_file_del[5]" value="1" class="frm_input full_input required">
                        <label for="mb_file_del5" class="frm_label"><?php echo $member["mb_5"]; ?> 파일 삭제</label>
                    </div>
                    <?php } ?>
                            
                </li>

답변을 작성하시기 전에 로그인 해주세요.
전체 129,672 | RSS
QA 내용 검색

회원로그인

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