<form>의 onsubmit() 함수가 호출되지 않습니다.

<form>의 onsubmit() 함수가 호출되지 않습니다.

QA

<form>의 onsubmit() 함수가 호출되지 않습니다.

본문

게시글 작성에 대한 write_skin.php 를 수정하여 사용하고 있습니다.

아래와 같이 onsubmit이 fwrite_submit() 함수에 연결되어 있습니다. 게시글 작성 또는 수정하기 버튼을 클릭 시 fwrite_submit()가 먼저 호출되고 함수 내에서 return true 가 나와야  action url 로 넘어가는것으로 알 고 있습니다.

하지만 아래와 같이 테스트용으로 return false; 를 해줬는데도 무시하고 바로 action url로 제출이 되네요.

혹시 이에 대한 문제 해결법을 알 수 있을까요?
함수 내에 event.defaultPrevent 나 <form onsubmit=fwrite_submit(this); return false;> 등을 해봤지만 해결이 안됐습니다.

 


    <form name="fwrite" id="fwrite" action= "<?php echo G5_BBS_APPLY_URL ?>"
        onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off" >
........
<button type="submit" id="btn_submit" accesskey="s" class="btn_submit btn">수 정</button>
........
 
<script>
function fwrite_submit(f) {
        console.log("test");
        return false;
}
</script>
 

이 질문에 댓글 쓰기 :

답변 1

아래의 코드들을 참고 해보세요..

 

 

<form name="fwrite" id="fwrite" action="<?php echo G5_BBS_APPLY_URL ?>" method="post" enctype="multipart/form-data" autocomplete="off">
    <!-- form 내용 -->
    <button type="submit" id="btn_submit" accesskey="s" class="btn_submit btn">수 정</button>
</form>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var form = document.getElementById('fwrite');
    form.addEventListener('submit', function(event) {
        event.preventDefault(); // 기본 제출 동작 막기
        if (fwrite_submit(this)) {
            this.submit(); // fwrite_submit이 true를 반환하면 폼 제출
        }
    });
});

function fwrite_submit(f) {
    console.log("test");
    return false; // false를 반환하면 폼이 제출되지 않음
}
</script>

 

 

<form name="fwrite" id="fwrite" action="<?php echo G5_BBS_APPLY_URL ?>" method="post" enctype="multipart/form-data" autocomplete="off">
    <!-- form 내용 -->
    <button type="submit" id="btn_submit" accesskey="s" class="btn_submit btn">수 정</button>
</form>

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
    $('#fwrite').on('submit', function(e) {
        e.preventDefault(); // 기본 제출 동작 막기
        if (fwrite_submit(this)) {
            this.submit(); // fwrite_submit이 true를 반환하면 폼 제출
        }
    });
});

function fwrite_submit(f) {
    console.log("test");
    return false; // false를 반환하면 폼이 제출되지 않음
}
</script>

 

 

 

<form name="fwrite" id="fwrite" action="<?php echo G5_BBS_APPLY_URL ?>" method="post" enctype="multipart/form-data" autocomplete="off">
    <!-- form 내용 -->
    <button type="button" id="btn_submit" accesskey="s" class="btn_submit btn">수 정</button>
</form>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btn = document.getElementById('btn_submit');
    btn.addEventListener('click', function() {
        if (fwrite_submit(document.getElementById('fwrite'))) {
            document.getElementById('fwrite').submit();
        }
    });
});

function fwrite_submit(f) {
    console.log("test");
    return false; // false를 반환하면 폼이 제출되지 않음
}
</script>

 

 

 

 

 

 

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

회원로그인

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