fwrite_submit 질문입니다.

fwrite_submit 질문입니다.

QA

fwrite_submit 질문입니다.

답변 3

본문

입력폼을 체크하는 부분인데

2줄 이상 소스를 넣으면 그냥 다 무시하고 넘어갑니다...




function fwrite_submit(f)
    {
        <?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함   ?>
//문제의 부분
        var wr2val = $("#wr_2").val();
        var chkreg ="/([0-9-])+/g";
        var rst = chkreg.test(wr2val);
          alert(rst);
        return false;

 

이 부분인데요 wr_2 폼에 숫자가 아니면 경고창을 띄우게 하고 싶습니다.

그런데 이리저리해도 그냥 폼이 넘어가길래

일단 값만 받고 경고창 띄우고 멈추려고 저렇게 만들어 둔겁니다.

그런데 return false도 무시하고 그냥 넘어가네요... 혹시 이유 아시는분 계신가요?

 

아래는 코드 전체입니다.

저것 때문에 다른 폼에도 조건들 줘야하는데 하나도 못주고 있네요...

 


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가


// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
?>


<section id="bo_w">
    <h2 id="container_title"><!--<?php echo $g5['title'] ?>-->등록페이지</h2>


    <!-- 게시물 작성/수정 시작 { -->
    <form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off" style="width:<?php echo $width; ?>">
    <input type="hidden" name="uid" value="<?php echo get_uniqid(); ?>">
    <input type="hidden" name="w" value="<?php echo $w ?>">
    <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
    <input type="hidden" name="wr_id" value="<?php echo $wr_id ?>">
    <input type="hidden" name="sca" value="<?php echo $sca ?>">
    <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
    <input type="hidden" name="stx" value="<?php echo $stx ?>">
    <input type="hidden" name="spt" value="<?php echo $spt ?>">
    <input type="hidden" name="sst" value="<?php echo $sst ?>">
    <input type="hidden" name="sod" value="<?php echo $sod ?>">
    <input type="hidden" name="page" value="<?php echo $page ?>">
    <?php
    $option = '';
    $option_hidden = '';
    if ($is_notice || $is_html || $is_secret || $is_mail) {
        $option = '';
        if ($is_notice) {
            $option .= "\n".'<input type="checkbox" id="notice" name="notice" value="1" '.$notice_checked.'>'."\n".'<label for="notice">공지</label>';
        }


        if ($is_html) {
            if ($is_dhtml_editor) {
                $option_hidden .= '<input type="hidden" value="html1" name="html">';
            } else {
                $option .= "\n".'<input type="checkbox" id="html" name="html" onclick="html_auto_br(this);" value="'.$html_value.'" '.$html_checked.'>'."\n".'<label for="html">html</label>';
            }
        }


        if ($is_secret) {
            if ($is_admin || $is_secret==1) {
                $option .= "\n".'<input type="checkbox" id="secret" name="secret" value="secret" '.$secret_checked.'>'."\n".'<label for="secret">비밀글</label>';
            } else {
                $option_hidden .= '<input type="hidden" name="secret" value="secret">';
            }
        }


        if ($is_mail) {
            $option .= "\n".'<input type="checkbox" id="mail" name="mail" value="mail" '.$recv_email_checked.'>'."\n".'<label for="mail">답변메일받기</label>';
        }
    }


    echo $option_hidden;
    ?>


    <div class="tbl_frm01 tbl_wrap">
        <table>
        <tbody>
        <?php if ($is_name) { ?>
        <tr>
            <th scope="row"><label for="wr_name">이름<strong class="sound_only">필수</strong></label></th>
            <td><input type="text" name="wr_name" value="<?php echo $name ?>" id="wr_name" required class="frm_input required" size="10" maxlength="20"></td>
        </tr>
        <?php } ?>


        <?php if ($is_password) { ?>
        <tr>
            <th scope="row"><label for="wr_password">비밀번호<strong class="sound_only">필수</strong></label></th>
            <td><input type="password" name="wr_password" id="wr_password" <?php echo $password_required ?> class="frm_input <?php echo $password_required ?>" maxlength="20"></td>
        </tr>
        <?php } ?>


        <?php if ($is_email) { ?>
        <tr>
            <th scope="row"><label for="wr_email">이메일</label></th>
            <td><input type="text" name="wr_email" value="<?php echo $email ?>" id="wr_email" class="frm_input email" size="50" maxlength="100"></td>
        </tr>
        <?php } ?>


        <?php if ($is_homepage) { ?>
        <tr>
            <th scope="row"><label for="wr_homepage">홈페이지</label></th>
            <td><input type="text" name="wr_homepage" value="<?php echo $homepage ?>" id="wr_homepage" class="frm_input" size="50"></td>
        </tr>
        <?php } ?>






        <?php if ($option) { ?>
        <tr>
            <th scope="row">옵션</th>
            <td><?php echo $option ?></td>
        </tr>
        <?php } ?>


        <?php if ($is_category) { ?>
        <tr>
            <th scope="row"><label for="ca_name">분류<strong class="sound_only">필수</strong></label></th>
            <td>
                <select name="ca_name" id="ca_name" required class="required" >
                    <option value="">선택하세요</option>
                    <?php echo $category_option ?>
                </select>
            </td>
        </tr>
        <?php } ?>


        <tr>
            <th scope="row"><label for="wr_subject">경매제목<strong class="sound_only">필수</strong></label></th>
            <td>
                <div id="autosave_wrapper">
                    <input type="text" name="wr_subject" placeholder="경매제목" value="<?php echo $subject ?>" id="wr_subject" required class="frm_input required" size="50" maxlength="255">
                    <?php if ($is_member) { // 임시 저장된 글 기능 ?>
                    <script src="<?php echo G5_JS_URL; ?>/autosave.js"></script>
                    <?php if($editor_content_js) echo $editor_content_js; ?>
                    <button type="button" id="btn_autosave" class="btn_frmline">임시 저장된 글 (<span id="autosave_count"><?php echo $autosave_count; ?></span>)</button>
                    <div id="autosave_pop">
                        <strong>임시 저장된 글 목록</strong>
                        <div><button type="button" class="autosave_close"><img src="<?php echo $board_skin_url; ?>/img/btn_close.gif" alt="닫기"></button></div>
                        <ul></ul>
                        <div><button type="button" class="autosave_close"><img src="<?php echo $board_skin_url; ?>/img/btn_close.gif" alt="닫기"></button></div>
                    </div>
                    <?php } ?>
                </div>
            </td>
        </tr>
		      <tr>
            <th scope="row"><label for="wr_1">업체명</label></th>
            <td><input type="text" required placeholder="업체명" name="wr_1" value="<?php echo $wr_1 ?>"  id="wr_1" class="frm_input" size="30"></td>
        </tr>


		      <tr>
            <th scope="row"><label for="wr_7">물품명</label></th>
            <td><input type="text" required placeholder="물품명" name="wr_7" value="<?php echo $wr_1 ?>" id="wr_1" class="frm_input" size="30"></td>
        </tr>


		    <tr>
            <th scope="row"><label for="wr_2">최저입찰가</label></th>
            <td><input type="text" required placeholder="최저입찰가" name="wr_2" value="<?php echo $wr_2 ?>" id="wr_2" class="frm_input" size="30"> 만원</td>
        </tr>


		    <tr>
            <th scope="row"><label for="wr_3">종료일</label></th>
            <td><input type="text" required name="wr_3" value="<?php if(isset($wr_3)){echo $wr_3;}else{echo date('Y-m-d');} ?>" id="wr_3" class="frm_input" size="30"></td>
        </tr>


		 <tr>
            <th scope="row"><label for="wr_4">물량</label></th>
            <td><input type="text" required placeholder="물량" name="wr_4" value="<?php echo $wr_4 ?>" id="wr_4" class="frm_input" size="30"></td>
        </tr>


		    <tr>
            <th scope="row"><label for="wr_5">운송방법(가격)</label></th>
            <td><input type="text" required placeholder="운송방법(가격)" name="wr_5" value="<?php echo $wr_5 ?>" id="wr_5" class="frm_input" size="30"></td>
        </tr>


		    <tr>
            <th scope="row"><label for="wr_6">포장방법</label></th>
            <td><input type="text" required placeholder="포장방법" name="wr_6" value="<?php echo $wr_6 ?>" id="wr_6" class="frm_input" size="30"></td>
        </tr>


        <tr>
            <th scope="row"><label for="wr_content">제품상세내용<strong class="sound_only">필수</strong></label></th>
            <td class="wr_content">
                <?php if($write_min || $write_max) { ?>
                <!-- 최소/최대 글자 수 사용 시 -->
                <p id="char_count_desc">이 게시판은 최소 <strong><?php echo $write_min; ?></strong>글자 이상, 최대 <strong><?php echo $write_max; ?></strong>글자 이하까지 글을 쓰실 수 있습니다.</p>
                <?php } ?>
                <?php echo $editor_html; // 에디터 사용시는 에디터로, 아니면 textarea 로 노출 ?>
                <?php if($write_min || $write_max) { ?>
                <!-- 최소/최대 글자 수 사용 시 -->
                <div id="char_count_wrap"><span id="char_count"></span>글자</div>
                <?php } ?>
            </td>
        </tr>


        <?php for ($i=1; $is_link && $i<=G5_LINK_COUNT; $i++) { ?>
        <tr>
            <th scope="row"><label for="wr_link<?php echo $i ?>">링크 #<?php echo $i ?></label></th>
            <td><input type="text" name="wr_link<?php echo $i ?>" value="<?php if($w=="u"){echo$write['wr_link'.$i];} ?>" id="wr_link<?php echo $i ?>" class="frm_input" size="50"></td>
        </tr>
        <?php } ?>


        <tr>
            <th scope="row">썸네일</th>
            <td>
                <input type="file" name="bf_file[]" title="파일첨부 : 용량 <?php echo $upload_max_filesize ?> 이하만 업로드 가능" class="frm_file frm_input">
                <?php if ($is_file_content) { ?>
                <input type="text" name="bf_content[]" value="<?php echo ($w == 'u') ? $file[0]['bf_content'] : ''; ?>" title="파일 설명을 입력해주세요." class="frm_file frm_input" size="50">
                <?php } ?>
                <?php if($w == 'u' && $file[0]['file']) { ?>
                <input type="checkbox" id="bf_file_del<?php echo $i ?>" name="bf_file_del[0]" value="1"> <label for="bf_file_del0"><?php echo $file[0]['source'].'('.$file[0]['size'].')';  ?> 파일 삭제</label>
                <?php } ?>
            </td>
        </tr>


        <?php if ($is_guest) { //자동등록방지  ?>
        <tr>
            <th scope="row">자동등록방지</th>
            <td>
                <?php echo $captcha_html ?>
            </td>
        </tr>
        <?php } ?>


        </tbody>
        </table>
    </div>


    <div class="btn_confirm">
        <input type="submit" value="작성완료" id="btn_submit" accesskey="s" onclick="form_chk();" class="btn_submit">
        <a href="./board.php?bo_table=<?php echo $bo_table ?>" class="btn_cancel">취소</a>
    </div>
    </form>


    <script>








    <?php if($write_min || $write_max) { ?>
    // 글자수 제한
    var char_min = parseInt(<?php echo $write_min; ?>); // 최소
    var char_max = parseInt(<?php echo $write_max; ?>); // 최대
    check_byte("wr_content", "char_count");


    $(function() {
      
        $("#wr_content").on("keyup", function() {
          check_byte("wr_content", "char_count");
        });
    });


    <?php } ?>
    function html_auto_br(obj)
    {
        if (obj.checked) {
            result = confirm("자동 줄바꿈을 하시겠습니까?\n\n자동 줄바꿈은 게시물 내용중 줄바뀐 곳을<br>태그로 변환하는 기능입니다.");
            if (result)
                obj.value = "html2";
            else
                obj.value = "html1";
        }
        else
            obj.value = "";
    }


    function fwrite_submit(f)
    {
        <?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함   ?>


        var subject = "";
        var content = "";
        $.ajax({
            url: g5_bbs_url+"/ajax.filter.php",
            type: "POST",
            data: {
                "subject": f.wr_subject.value,
                "content": f.wr_content.value
            },
            dataType: "json",
            async: false,
            cache: false,
            success: function(data, textStatus) {
                subject = data.subject;
                content = data.content;
            }
        });


        if (subject) {
            alert("제목에 금지단어('"+subject+"')가 포함되어있습니다");
            f.wr_subject.focus();
            return false;
        }


        if (content) {
            alert("내용에 금지단어('"+content+"')가 포함되어있습니다");
            if (typeof(ed_wr_content) != "undefined")
                ed_wr_content.returnFalse();
            else
                f.wr_content.focus();
            return false;
        }
        if($("#wr_2").val().length >0){
          var ss2 = $("#wr_2").val();
          var regss = "/([0-9-])+/g";
          var rstss = regss.test(ss2);


            alert(rstss);


          return false;
        }
        if (document.getElementById("char_count")) {
            if (char_min > 0 || char_max > 0) {
                var cnt = parseInt(check_byte("wr_content", "char_count"));
                if (char_min > 0 && char_min > cnt) {
                    alert("내용은 "+char_min+"글자 이상 쓰셔야 합니다.");
                    return false;
                }
                else if (char_max > 0 && char_max < cnt) {
                    alert("내용은 "+char_max+"글자 이하로 쓰셔야 합니다.");
                    return false;
                }
            }
        }


        <?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함  ?>


        document.getElementById("btn_submit").disabled = "disabled";


        return true;
    }
    </script>
    </section>
    <!-- } 게시물 작성/수정 끝 -->

 

이 질문에 댓글 쓰기 :

답변 3

submit시 오류가난 스크릅트에서 멈추는게 아니라 그냥 submit 되는 경우가 있습니다.

F12로 콘솔로그 보시거나 try{}catch{} 구문으로 에러내용을 확인해보세요.

 

function fwrite_submit()

{

try{

      //기존내용코드..

}catch(e){

alert(e.toString());

}

소스는 길어서 다 살펴보지는 못했는데 직접 짠 소스 말고

 

numeric 를 한번 넣어봐주세요 그누기본으로 숫자인지 체크 하는 방법입니다. 

사용예

<input type="" numeric> 식으로 넣어주시면 됩니다.

이런 경우는 대부분 다른 부분에서 스크립트 오류나서 그런것입니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 125,873
© SIRSOFT
현재 페이지 제일 처음으로