폼에 onsubmit 로하는거랑 action으로 하는거랑 차이점이 뭔가요? > 십년전오늘

십년전오늘

10년전 추억의 책장을 넘기며

폼에 onsubmit 로하는거랑 action으로 하는거랑 차이점이 뭔가요? 정보

폼에 onsubmit 로하는거랑 action으로 하는거랑 차이점이 뭔가요?

본문

게시판 스킨 만들다가..  문제가 생겨서 질문올렸는데 답글도 못받고해서
여기다가 질문 올려봅니다...

http://sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=167597#c_167613


스킨의 list.skin.php  파일에
<?
include ("$board_skin_path/write.skin.php");
?>
요렇게 해서 글쓰기 창을 삽입했는데요..

write.skin.php 에서

입력폼 부분을

<form name="fwrite" method="post" action="javascript:fwrite_check(document.fwrite);" enctype="multipart/form-data" autocomplete="off">

이렇게 하면 익플에선 정상동작하지만
크롬에선 엔터 두번 (또는 글쓰기 버튼 두번클릭)해야  입력이되고

<form name="fwrite" method="post" onsubmit="return fwrite_submit(this);" enctype="multipart/form-data" style="margin:0px;">

이렇게 하면 크롬에선 정상이지만..
익플에선 글이 2번 포스팅됩니다...

몇일째 인터넷 검색해보고있는데.. 해결법을 못찾겠네요.  ㅜㅜ

혹시 이거 해결방법 아시면 꼭 좀 도와주세요 ...

부탁드립니다.. 굽신굽신
  • 복사

댓글 전체

onsubmit="return function()"
이거는 서브밋전에 funtion()을 호출하라는 것이니..

function() 내용중 폼을 서브밋하는 코드가 있어 한번 포스팅이 되었고..

이 함수의 리턴값이 true 이기 때문에
폼의 action 값으로 다시 한번 서브밋이 일어나 두번째 포스팅이 된것은 아닌지??

function() 리턴값을 강제로 false 가 되도록 해보시는 건 어떨런지??

크롬을 써본적이 없어서;; 어찌될런지 모르겠네요..
아..  힌트 감사합니다....

펑션에서 WRITE_UPDATE.PHP  를 실행하고
SUBMIT을 하도록 되있는데
이거 두개 순서를 바꿔놓으니깐 되는거 같습니다.

자바스크립트는 잘 몰라서.. 이게 문제가 되는지는 모르겠지만...
ONSUBMIT 써서 글 작성은 일단 잘  되네요...
ㄴㄴ
크롬에서 안되는게 아니라
익스에서만 되는거 아닌가요 ㅡㅡ;?

jquery 를 사용하시면 bind 를 이용해서 submit 옵션으로 해결 가능합니다

물론 jquery를 안써도 되긴 되지만 ㅡㅡ;
<form name="fwrite" method="post" onsubmit="return fwrite_check(this);" enctype="multipart/form-data" autocomplete="off">

이걸 사용하고

function fwrite_check(f)
{
    var s = "";
if (f.wr_content.value == "내용을 입력해 주세요..."){
alert("내용을 입력해 주세요...")
return;
}

if (s = word_filter_check(f.wr_content.value)) {
        alert("내용에 금지단어('"+s+"')가 포함되어있습니다");
        return;
}

f.submit();
    f.action = "./write_update.php";

}

이렇게 주었습니다.

글쓰기 2번 나오는 현상은 안생기는거 같긴 합니다..문제가 있는지는  더 만져봐야 .. ^^
© SIRSOFT
현재 페이지 제일 처음으로