테스트 사이트 - 개발 중인 베타 버전입니다

폼제출 하고 input값이 초기화 안되는 방법 있나요? 채택완료

qjaqja11 2년 전 조회 3,082

폼 입력 후 약관동의하지 않음을 선택하면 '약관을 동의해주세요'라는 알림이 뜨게 설정해놨는데

그 후에 폼에 입력해놓은 값들이 초기화되서 없어져 버립니다 ㅠ

 

폼 제출 전에는 입력해놓은 값들은 유지하는 방법 있을까요?

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

답변 6개

채택된 답변
+20 포인트

데이터 형태가 어떠한 형태인지 알수가 없어서

기본적은 form & submit 형태로 알려드립니다.

 

</p>

<pre>
<code><form name="form" onsubmit="return check()">
   <input type="text" name="id">
   <input type="text" name="pw">
   <input type="submit">
</form>
 
<script>
function check() {
  if(form.id.value == "") {
    alert("ID를 입력해주세요.");
    form.id.focus();
    return false;
  } else if(form.pw.value == "") {
    alert("PASSWORD를 입력해 주세요.");
    form.pw.focus();
    return false;
  } else return true;
}
</script></code></pre>

<p><code>

 

문의주신 내용은 팁게에도 등록했습니다~

https://sir.kr/g5_tip/19882

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

q
qjaqja11
2년 전
<div class="cont-radio">
<input
type="radio"
name="wr_1"
value="1"
<?if($write[wr_1]=="1")echo"checked";?>>&nbsp;모두 동의&nbsp;
<input
type="radio"
name="wr_1"
value="0"
<?if($write[wr_1]=="0")echo"checked";?>>&nbsp;동의하지 않음
</div>
<div class="btn_confirm">
<input
type="submit"
value="작성완료"
id="btn_submit"
accesskey="s"
class="btn_submit">
<a href="javascript:history.back();" class="btn_cancel">취소</a>
</div>

와 write_update.head.skin.php파일에
<?
if (!defined("_GNUBOARD_")) return; // 개별 페이지 접근 불가
if ($wr_1 == 0) {
alert('약관에 동의해 주세요.');
}
?>
를 추가해서 쓰고 있습니다.

--------------------------
적어주신 대로 수정 해보면
<script>
function check() {
if(form.wr_1.value == "") {
alert("약관에 동의해주세요");
form.wr_1.focus();
return false;
} else return true;
}
</script>
이렇게 쓰면 될까요??

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

다른분들이 html형태로 쉽게 잘 설명해주셨는데요

php로 해보면 이용약관 값을 post나 get 등으로 받아서 체크해보는 방법도 있을수 있을것 같네요

이용약관 체크했는지 여부 변수를 a라고 한다면 값을 chk로 받아서 비교하는 방법으로 하면될것 같네요

<input type="checkbox" name="term" value="Y" <?=($a=="chk"?"checked":"")?>>

 

이런식으로 쓸수 있겠네요

 

 

로그인 후 평가할 수 있습니다

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

2년 전

onsubmit 이벤트 핸들러에 대해

return 처리가 제대로 되지 않았거나 에러가 발생해서 

그대로 서브밋 되었을 가능성이 있을것으로 유추됩니다.

 

케이스별 상황의 예시가 도움이 될지 모르겠습니다.

 

</p>

<p><script>

function fsubmit_err_0(fobj) {

    if (fobj.chk.checked == false) {

        alert('약관을 동의해주세요');

    }

    // no return

}</p>

<p> </p>

<p>function fsubmit_err_1(fobj) {

    if (fobj.chk.checked == false) {

        alert('약관을 동의해주세요');

        fobj.not_exists_elements.focus(); // error. not exists element

        return false;

    }

    return true;

}</p>

<p> </p>

<p>function fsubmit(fobj) {

    if (fobj.chk.checked == false) {

        alert('약관을 동의해주세요');

        return false;

    }

    return true;

}

</script></p>

<p> </p>

<p><form method="post" onsubmit="return fsubmit_err_0(this)">

<fieldset>

    <legend><h2>Submit Error</h2> by no return statement</legend>

    <ul>

        <li><label>a : <input name="a" type="text" /></label></li>

        <li><label>b : <input name="b" type="text" /></label></li>

        <li><label><input name="chk" type="checkbox" /> 약관을 동의</label></li>

        <li><input type="submit" /></li>

    </ul>

</fieldset>

</form></p>

<p> </p>

<p><form method="post" onsubmit="return fsubmit_err_1(this)">

<fieldset>

    <legend><h2>Submit Error</h2> by not exists element</legend>

    <ul>

        <li><label>a : <input name="a" type="text" /></label></li>

        <li><label>b : <input name="b" type="text" /></label></li>

        <li><label><input name="chk" type="checkbox" /> 약관을 동의</label></li>

        <li><input type="submit" /></li>

    </ul>

</fieldset>

</form></p>

<p> </p>

<p><form method="post" onsubmit="return fsubmit(this)">

<fieldset>

    <legend><h2>Submit normal</h2></legend>

    <ul>

        <li><label>a : <input name="a" type="text" /></label></li>

        <li><label>b : <input name="b" type="text" /></label></li>

        <li><label><input name="chk" type="checkbox" /> 약관을 동의</label></li>

        <li><input type="submit" /></li>

    </ul>

</fieldset>

</form></p>

<p>

로그인 후 평가할 수 있습니다

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

추가로 단지 채크 유무만 판별하실거면

<input type="checkbox" required>

이렇게 checkbox 에도 필수입력 할당이 가능합니다.

단, ie11 이하 구버전 브라우저에서는 작동하지 않을 수 있습니다.

로그인 후 평가할 수 있습니다

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

2년 전

ajax로 하시면 원하시는데로 처리가 될거 같습니다. 통신이 제대로 되면 폼을 초기화 하시고요.

로그인 후 평가할 수 있습니다

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

그누위즈

세션이나 쿠키를 이용해보세요.

로그인 후 평가할 수 있습니다

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

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

로그인