입력항목이 비었을 때 왜 체크를 못할까요? > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

입력항목이 비었을 때 왜 체크를 못할까요? 정보

입력항목이 비었을 때 왜 체크를 못할까요?

본문

두가지 문의 드립니다.

1. 여러가지 입력 항목이 있습니다.
form을 사용해서 onsubmit를 통해
소스하단에 스크립트로 체크하게 되어 있는데 필드입력을 하지 않아도 그대로 넘어갑니다.
왜 체크를 못하는지 궁금합니다.
그리고 한가지 더 문의 드립니다.

2. 파일업로드 항목이 처음에 입력필드가 한 개가 떠야 정상인데 항목이 뜨질 않네요.
파일 옆의 + - 항목을 클릭해야만 입력필드가 생깁니다.
화면이 뜰 때 파일을 선택할 수 있도록 한개의 입력필드가 생겼으면 합니다.
아래는 소스입니다.

<?
include_once("./_common.php");

$tmp_on_uid = get_session('ss_on_uid');

include_once("./_head.php");

$s_on_uid = $tmp_on_uid;
?>

<form name=forderform method=post action="./orderreceipt.php" onsubmit="return forderform_check(this);" enctype="multipart/form-data" autocomplete=off>
<input type=hidden name=od_amount    value='<?=$tot_sell_amount?>'>
<input type=hidden name=od_send_cost value='<?=$send_cost?>'>
<input type=hidden name=it_id  value='<?=$it_id?>'>

<table width=97% align=center cellpadding=0 cellspacing=0 border=1 bordercolor=#e8e8e8>
  <tr>
    <td>
    <table width=100% align=center cellpadding=0 cellspacing=0 border=0>
      <tr>
        <div align=center">
        <td width=100% style="padding:5 0 5 0;">
       
        <table width=97% cellpadding=0 cellspacing=5 border=0 align="center">
          <tr>
            <td><li>업체명&nbsp;<input type=text id=od_comp name=od_comp value='<?=$member[mb_comp]?>' size=16 maxlength=20 class=ed></td>
            <td><li>성명&nbsp;<input type=text id=od_name name=od_name value='<?=$member[mb_name]?>' size=12 maxlength=10 class=ed></td>
            <td><li>전화번호&nbsp;<input type=text name=od_tel value='<?=$member[mb_tel]?>' size=16 maxlength=20 class=ed></td>
            <td><li>핸드폰&nbsp;<input type=text name=od_hp value='<?=$member[mb_hp]?>' size=16 maxlength=20 class=ed></td>
          </tr>
        </table>
               
        </td>
        </div>
      </tr>
    </table>
    </td>
  </tr>
</table>

<table width="97%" align=center cellpadding=0 cellspacing=0 border=1 bordercolor="#E8E8E8">
  <tr>
            <td><li> 내용을 입력하세요</td>
          </tr>
          <tr><td><textarea name=od_memo rows=5 cols=130 class=ed></textarea></td></tr>

      <tr>
        <td style='padding-left:10px; height:30px;'>
        <table width="97%" cellpadding=0 cellspacing=0>
          <tr>
            <td width=120 style="padding:10 0 10 0;"><li>파일 <span onclick="add_file();" style='cursor:pointer; font-family:tahoma; font-size:9pt;'>+</span> <span onclick="del_file();" style='cursor:pointer; font-family:tahoma; font-size:9pt;'>-</span></td>
            <td style='padding:5 0 0 0;'>
            <table id="variableFiles" cellpadding=0 cellspacing=0></table><?// print_r2($file); ?>
       
        <script language="JavaScript">
        var flen = 0;
        function add_file(delete_code)
        {
            var upload_count = 3;
            if (upload_count && flen >= upload_count)
            {
                alert("이 게시판은 "+upload_count+"개 까지만 파일 업로드가 가능합니다.");
                return;
            }

            var objTbl;
            var objRow;
            var objCell;
            if (document.getElementById)
                objTbl = document.getElementById("variableFiles");
            else
                objTbl = document.all["variableFiles"];

            objRow = objTbl.insertRow(objTbl.rows.length);
            objCell = objRow.insertCell(0);

            objCell.innerHTML = "<input type='file' class='field_pub_01' size=50 name='bf_file[]' title='파일 용량 1M 이하만 업로드 가능'>";
            if (delete_code)
                objCell.innerHTML += delete_code;
            else
            {
                <? if ($is_file_content) { ?>
                objCell.innerHTML += "<br><input type='text' class='field_pub_01' size=50 name='bf_content[]' title='업로드 이미지 파일에 해당 되는 내용을 입력하세요.'>";
                <? } ?>
                ;
            }

            flen++;
        }

        <?=$file_script; //수정시에 필요한 스크립트?>

        function del_file()
        {
            // file_length 이하로는 필드가 삭제되지 않아야 합니다.
            var file_length = <?=(int)$file_length?>;
            var objTbl = document.getElementById("variableFiles");
            if (objTbl.rows.length - 1 > file_length)
            {
                objTbl.deleteRow(objTbl.rows.length - 1);
                flen--;
            }
        }
        </script>
            </td>
          </tr>
        </table>

        </td>
      </tr>     
    </table>
   
    </td>
  </tr>
</table>
<table width=97% align=center>
  <tr>
    <td div align=center>
    <input type="image" src="<?=$g4[shop_img_path]?>/btn_next2.gif" border=0 alt="다음">&nbsp;
    <a href='javascript:history.go(-1);'><img src="<?=$g4[shop_img_path]?>/btn_back1.gif" alt="뒤로" border=0></a>
    </td>
  </tr>
</table>

</td>
</tr>
</table>
</form>
 
<script language='javascript'>
function forderform_check(f)
{
    errmsg = "";
    errfld = "";
    var deffld = "";

    check_field(f.od_comp, "업체명을 입력하십시오.");
    check_field(f.od_name, "주문자 이름을 입력하십시오.");
    if (typeof(f.od_pwd) != 'undefined')
    {
        clear_field(f.od_pwd);
        if( (f.od_pwd.value.length<3) || (f.od_pwd.value.search(/([^A-Za-z0-9]+)/)!=-1) )
            error_field(f.od_pwd, "회원이 아니신 경우 주문서 조회시 필요한 비밀번호를 3자리 이상 입력해 주십시오.");
    }
    check_field(f.od_tel, "주문하시는 분 전화번호를 입력하십시오.");
    check_field(f.od_addr1, "우편번호 찾기를 이용하여 주문하시는 분 주소를 입력하십시오.");
    check_field(f.od_addr2, " 주문하시는 분의 상세주소를 입력하십시오.");
    check_field(f.od_zip1, "");
    check_field(f.od_zip2, "");

    clear_field(f.od_email);
    if(f.od_email.value=='' || f.od_email.value.search(/(\S+)@(\S+)\.(\S+)/) == -1)
        error_field(f.od_email, "E-mail을 바르게 입력해 주십시오.");

    if (typeof(f.od_hope_date) != "undefined")
    {
        clear_field(f.od_hope_date);
        if (!f.od_hope_date.value)
            error_field(f.od_hope_date, "희망배송일을 선택하여 주십시오.");
    }


    if (errmsg)
    {
        alert(errmsg);
        errfld.focus();
        return false;
    }

    var settle_case = document.getElementsByName("od_settle_case");
    var settle_check = false;
    for (i=0; i<settle_case.length; i++)
    {
        if (settle_case[i].checked)
        {
            settle_check = true;
            break;
        }
    }


    return true;
}

</script>

<?
include_once("./_tail.php");
?>
  • 복사

댓글 전체

그누보드에서는
required만 적어주시면 필수 입력으로 체크해줍니다.

<input type=text id=od_comp name=od_comp value='<?=$member[mb_comp]?>' size=16 maxlength=20 class=ed>요놈아에서
<input type=text id=od_comp name=od_comp value='<?=$member[mb_comp]?>' size=16 maxlength=20 class=ed required>이렇게 적어주시면 그누보드에서 필수입력으로 확인해줍니다.

업로드는 원래 처음부터 한개 뜨는게 정상인데..-_-;;
소스도 정상적인것 같은데 저도 잘 모르겠습니다..;;
끝내 못 찿겠네요..

그리고 file script 정의 부분이 빠져 있었네요.ㅠㅠ

자신이 한 것은 이상하게 문제가 있는 부분을 찾기가 힘드네요.

            <?
            $file_script = "";
            $file_length = -1;
            // 수정의 경우 파일업로드 필드가 가변적으로 늘어나야 하고 삭제 표시도 해주어야 합니다.
            if ($w == "u")
            {
              for ($i=0; $i<$file[count]; $i++)
              {
                $row = sql_fetch(" select bf_file, bf_content from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$i' ");
                if ($row[bf_file])
                {
                  $file_script .= "add_file(\"<input type='checkbox' name='bf_file_del[$i]' value='1'><a href='{$file[$i][href]}'>{$file[$i][source]}({$file[$i][size]})</a> 파일 삭제";
                  if ($is_file_content)
                  $file_script .= "<br><input type='text' class=ed size=50 name='bf_content[$i]' value='".addslashes(get_text($row[bf_content]))."' title='업로드 이미지 파일에 해당 되는 내용을 입력하세요.'>";
                  $file_script .= "\");\n";
                }
                else
                $file_script .= "add_file('');\n";
                }
              $file_length = $file[count] - 1;
            }
           
            if ($file_length < 0)
            {
              $file_script .= "add_file('');\n";
              $file_length = 0;
            }
            ?>
© SIRSOFT
현재 페이지 제일 처음으로