입력항목이 비었을 때 왜 체크를 못할까요? 정보
입력항목이 비었을 때 왜 체크를 못할까요?본문
두가지 문의 드립니다.
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>업체명 <input type=text id=od_comp name=od_comp value='<?=$member[mb_comp]?>' size=16 maxlength=20 class=ed></td>
<td><li>성명 <input type=text id=od_name name=od_name value='<?=$member[mb_name]?>' size=12 maxlength=10 class=ed></td>
<td><li>전화번호 <input type=text name=od_tel value='<?=$member[mb_tel]?>' size=16 maxlength=20 class=ed></td>
<td><li>핸드폰 <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="다음">
<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");
?>
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>업체명 <input type=text id=od_comp name=od_comp value='<?=$member[mb_comp]?>' size=16 maxlength=20 class=ed></td>
<td><li>성명 <input type=text id=od_name name=od_name value='<?=$member[mb_name]?>' size=12 maxlength=10 class=ed></td>
<td><li>전화번호 <input type=text name=od_tel value='<?=$member[mb_tel]?>' size=16 maxlength=20 class=ed></td>
<td><li>핸드폰 <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="다음">
<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>이렇게 적어주시면 그누보드에서 필수입력으로 확인해줍니다.
업로드는 원래 처음부터 한개 뜨는게 정상인데..-_-;;
소스도 정상적인것 같은데 저도 잘 모르겠습니다..;;
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>이렇게 적어주시면 그누보드에서 필수입력으로 확인해줍니다.
업로드는 원래 처음부터 한개 뜨는게 정상인데..-_-;;
소스도 정상적인것 같은데 저도 잘 모르겠습니다..;;
그리고 제가 자바스크립트는 영 꽝이라서 소스를 봐도 도통..-_-;;
감(?)으론 check_field 함수가 정의가 안 된 것 같은데요..
감(?)으론 check_field 함수가 정의가 안 된 것 같은데요..
이것을 일반적으로 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;
}
?>
그리고 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;
}
?>