왜 java script form check 함수가 동작을 안할까요? ㅠ..ㅠ... > 그누4 질문답변

그누4 질문답변

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

왜 java script form check 함수가 동작을 안할까요? ㅠ..ㅠ... 정보

왜 java script form check 함수가 동작을 안할까요? ㅠ..ㅠ...

본문

submit 함수를 누르면 check_form() 스크립트가 돌아야 하는데, 왜??? 안돌까요? ㅠ..ㅠ...
이거는 그누보드 코드는 절대로 아닙니다.
감기에 몸살까지 코드가 눈에 안들어와요.
---

<style>
.pay_title_cell { font-size:10pt; padding:5px; color:#ffffff; border-bottom:2px #AF007A solid; background:#D580BD;}
.pay_content_cell { line-height:150%; padding:10px; border-bottom:1px #bfbfbf solid; }
.pay_pad_left { padding-left:15px; text-align:justify;}
</style>

<script language="javascript">
function BasicArray(name, list){
    this.name = name;
    this.list = list;
}
var SelectArray = new Array();
var SelectArrayJobCode = new Array();

<?
 $job_code_arr = get_job_code_arr($db, 'kr');

 $arr_index = 0;
 foreach($job_code_arr as $key => $value)
 {
  echo "SelectArray[".$arr_index."] = new BasicArray('".$key."', ['-- 선택하세요 --', '".implode("', '", $value)."']);\n";
  echo "SelectArrayJobCode[".$arr_index."] = new BasicArray('".$key."', ['', '".implode("', '", array_keys($value))."']);\n";
  ++$arr_index;
 }
?>

function ChangeList(selectbox)
{
 var selectbox_arr = document.getElementsByName(selectbox.name);
 for( var i = 0; i < selectbox_arr.length; i++ )
 {
  if( selectbox_arr[i] == selectbox )
  {
   num = i;
   break;
  }
 }
 
 var optionname = selectbox.value;

 if( optionname != '' )
 {
  var obj_arr_job_code = document.getElementsByName("job_code[]");

  var optionLen = obj_arr_job_code.length;
  var numSelectArray;

  for (var i = 0; i < SelectArray.length; i++) {
   if (optionname == SelectArray[i].name) {
    numSelectArray = SelectArray[i].list.length;
    for (var j = 0; j < numSelectArray; j++)
    {
     obj_arr_job_code[num].options[j] = new Option(SelectArray[i].list[j],SelectArrayJobCode[i].list[j]);
    }
    for (var j = numSelectArray; j < optionLen; j++)
    {
     obj_arr_job_code[num].options[numSelectArray] = null;
    }
   }
  }

 }
 else
 {
  ClearList(num);
 }
}

function ClearList(num)
{
 var obj_arr_job_code = document.getElementsByName("job_code[]");

 var selectbox_obj = obj_arr_job_code[num];

 for(var i=selectbox_obj.length; i >0 ; i-- )
 {
  selectbox_obj.options[i] = null;
 }
 selectbox_obj.options[0] = new Option('-- 1차 분류를 먼저 선택하세요 --','');
}

function check_form()
{
 var f = document.forms[0];
 var check_count = 0;

 if( f.keyword1.value + f.keyword2.value + f.keyword3.value + f.keyword4.value != '' )
  check_count++;

 if( f.career_com_name1.value + f.career_com_name2.value + f.career_com_name3.value)
  check_count++;

 if( f.career_level.value != '' )
  check_count++;

 var job_code1 = document.getElementsByName('job_code[]')[0].value;
 if( job_code1 != '' )
  check_count++;

 if( f.bizcode.value != '' )
  check_count++;
  
 if( f.career_bizcode.value != '' )
  check_count++;
  
 var job_code2 = document.getElementsByName('job_code[]')[1].value;
 if( job_code2 != '' )
  check_count++;
  
 if( f.detail1.value + f.detail2.value + f.detail3.value != '' )
  check_count++;
  
 if( f.sc_level.value != '' )
  check_count++;
 
 <? if( is_search_user() ) { ?> 
 if( f.sc_name.value != '' )
  check_count++;
  
 if( f.sc_major.value != '' )
  check_count++;
 <? } ?>
  
 if( f.special.value != '' )
  check_count++;
  
 if( f.license.value != '' )
  check_count++;
  
 if( f.age_from.value + f.age_to.value != '' )
  check_count++;
  
 <? if( is_search_user() ) { ?>
 if( f.possible_work_date.value != '' )
  check_count++;
 <? } ?>

 if( f.mb_id.value != '' )
  check_count++;
 
 for(var i=0; i<f.sex.length; i++)
 {
  if( f.sex[i].checked )
  {
   var sex = f.sex[i].value; 
   break;
  }
 } 
 
 if( sex != '' )
  check_count++;
 
 if( check_count < 2 )
 {
  alert('최소 2개 이상의 조건을 입력해 주십시오.');
  return false;
 }
 else
 {
  return true;
 }
}
</script>

<table border=0 cellspacing=0 cellpadding=0 width="100%">
<tr>
 <td><img src="img/hrdb_title.gif"></td>
</tr>
<tr>
 <td height=10></td>
</tr>
<tr>
 <td>

<form method="get" action="search_talent_list.php" onsubmit="return check_form();">
<table border=0 cellspacing=0 cellpadding=0 width="100%">
<tr>
 <td height=2 bgcolor="#5f7cac"></td>
 <td bgcolor="#9aadce"></td>
</tr>

<? if( is_search_user() && ! is_paid_user('H_CLASSIC_6M') && ! is_paid_user('H_CLASSIC_1Y') ) { ?>  
<tr>
 <td class="frm_cell_title" width=120>이력서 키워드</td>
 <td class="frm_cell_content">
  <input type="text" name="keyword1" size=15 maxlength=60 class="input" value="<?=$keyword1?>">
  <input type="text" name="keyword2" size=15 maxlength=60 class="input" value="<?=$keyword2?>"> 
  <input type="text" name="keyword3" size=15 maxlength=60 class="input" value="<?=$keyword3?>">
  <input type="text" name="keyword4" size=15 maxlength=60 class="input" value="<?=$keyword4?>">
  <input type="radio" name="operator" value="OR" <?if($operator=='OR'||$operator==''){?>checked<?}?> id="id_or"><label for="id_or">OR</label>
  <input type="radio" name="operator" value="AND" <?if($operator=='AND'){?>checked<?}?> id="id_and"><label for="id_and">AND</label>
  
 </td>
</tr>
<? } ?>

<tr>
 <td class="frm_cell_title">커리어 수준</td>
 <td class="frm_cell_content">
  <? print_selectbox($_PNJ['career_level_arr'], 'career_level', $career_level, '-- 선택 --', '') ?>
 </td>
</tr>

<tr>
 <td class="frm_cell_title">직종</td>
 <td class="frm_cell_content">
  <? print_job_type_selectbox($db, 'job_type[]', $job_type, 'ChangeList(this);', 'kr'); ?>
  ▶
  <select name="job_code[]" class="input">
  <option value="">-- 1차 분류를 먼저 선택하세요 --</option>
  </select>

<? if( $job_code ) { ?>
<script>
ChangeList( document.getElementsByName('job_type[]')[0] );
document.getElementsByName('job_code[]')[0].value = '<?=$job_code?>';
</script>
<? } ?>

 </td>
</tr>

<tr>
 <td class="frm_cell_title">업종</td>
 <td class="frm_cell_content">
<?
 $bizcode_arr = get_bizcode_arr($db, '', 'ko');
 print_selectbox($bizcode_arr, 'bizcode', $bizcode, '-- 선택 --', '');
?>
 </td>
</tr>

<tr>
 <td colspan=2 height=30>
  <img src="../personal/img/rr_career.gif">
 </td>
</tr>
<tr>
 <td height=2 bgcolor="#5f7cac"></td>
 <td bgcolor="#9aadce"></td>
</tr>
<? if( is_search_user() ) { ?>
<tr>
 <td class="frm_cell_title">회사명</td>
 <td class="frm_cell_content">
  <input type="text" name="career_com_name1" size=20 class="input" value="<?=$career_com_name1?>">
    <? if ( ! is_paid_user('H_CLASSIC_6M') && ! is_paid_user('H_CLASSIC_1Y')) { ?>
  <input type="text" name="career_com_name2" size=20 class="input" value="<?=$career_com_name2?>">
  <input type="text" name="career_com_name3" size=20 class="input" value="<?=$career_com_name3?>">
  (OR조건임)
  <? } ?>
 </td>
</tr>

<tr>
 <td class="frm_cell_title">직무</td>
 <td class="frm_cell_content">
  <input type="text" name="career_role" size=20 class="input" value="<?=$career_role?>"> 예) 기획팀장
 </td>
</tr>
<? } ?>

<? if ( ! is_paid_user('H_CLASSIC_6M') && ! is_paid_user('H_CLASSIC_1Y')) { ?>
<tr>
 <td class="frm_cell_title">회사업종</td>
 <td class="frm_cell_content">
  <? print_selectbox($bizcode_arr, 'career_bizcode', $career_bizcode, '-- 선택 --', ''); ?>
 </td>
</tr>

<tr>
 <td class="frm_cell_title">근무직종</td>
 <td class="frm_cell_content">
  <? print_job_type_selectbox($db, 'job_type[]', $career_job_type, 'ChangeList(this);', 'kr'); ?>
  ▶
  <select name="job_code[]" class="input">
  <option value="">-- 1차 분류를 먼저 선택하세요 --</option>
  </select>

<? if( $career_job_code ) { ?>
<script>
ChangeList( document.getElementsByName('job_type[]')[1] );
document.getElementsByName('job_code[]')[1].value = '<?=$career_job_code?>';
</script>
<? } ?>

 </td>
</tr>
<? } ?>

<tr>
 <td class="frm_cell_title">상세내용</td>
 <td class="frm_cell_content">
  <input type="text" name="detail1" size=20 maxlength=60 class="input" value="<?=$detail1?>">
    <? if ( ! is_paid_user('H_CLASSIC_6M') && ! is_paid_user('H_CLASSIC_1Y')) { ?>
  <input type="text" name="detail2" size=20 maxlength=60 class="input" value="<?=$detail2?>">  
  <input type="text" name="detail3" size=20 maxlength=60 class="input" value="<?=$detail3?>">
  (OR조건임)
  <? } ?>
 </td>
</tr>

<? if ( ! is_paid_user('H_CLASSIC_6M') && ! is_paid_user('H_CLASSIC_1Y')) { ?>
<tr>
 <td colspan=2 height=30>
  <img src="../personal/img/rr_school.gif">
 </td>
</tr>
<tr>
 <td height=2 bgcolor="#5f7cac"></td>
 <td bgcolor="#9aadce"></td>
</tr>

<? if( is_search_user() ) { ?>
<tr>
 <td class="frm_cell_title">학위</td>
 <td class="frm_cell_content">
  <?print_selectbox($_PNJ['sc_level_arr'], 'sc_level', $sc_level,'-- 선택 --')?>
 </td>
</tr>

<tr>
 <td class="frm_cell_title">대학교/대학원</td>
 <td class="frm_cell_content">

 <table border=0 cellspacing=0 cellpadding=2>
 <tr>
  <td style="padding-right:5px;">학교 이름</td>
  <td>
   <input type="text" name="sc_name" size=40 maxlength=40 class="input" value="<?=$sc_name?>">  <input type="checkbox" name="sc_foreign" value="F" <?if($sc_foreign=='F'){?>checked<?}?>> 해외소재 대학/대학원
  </td>
 </tr>
 <tr>
  <td>전공</td>
  <td>
   <input type="text" name="sc_major" size=40 maxlength=40 class="input" value="<?=$sc_major?>">
  </td>
 </tr>
 </table>
 
 </td>
</tr>
<? } ?>
<? } ?>

<tr>
 <td colspan=2 height=30>
  <img src="img/hrdb_etc_title.gif">
 </td>
</tr>
<tr>
 <td height=2 bgcolor="#5f7cac"></td>
 <td bgcolor="#9aadce"></td>
</tr>

<? if( is_search_user() ) { ?>
<? if ( ! is_paid_user('H_CLASSIC_6M') && ! is_paid_user('H_CLASSIC_1Y')) { ?>
<tr>
 <td class="frm_cell_title">특기</td>
 <td class="frm_cell_content">
  <input type="text" name="special" size=30 class="input" value="<?=$special?>">
 </td>
</tr>

<tr>
 <td class="frm_cell_title">자격증</td>
 <td class="frm_cell_content">
  <input type="text" name="license" size=30 class="input" value="<?=$license?>">
 </td>
</tr>
<? } ?>
<? } ?>

<tr>
 <td class="frm_cell_title">나이</td>
 <td class="frm_cell_content">
  <input type="text" name="age_from" size=3 maxlength=2 class="input" value="<?=$age_from?>">살
  ~
  <input type="text" name="age_to" size=3 maxlength=2 class="input" value="<?=$age_to?>">살
 </td>
</tr>

<? if ( ! is_paid_user('H_CLASSIC_6M') && ! is_paid_user('H_CLASSIC_1Y')) { ?>
<tr>
 <td class="frm_cell_title">근무 가능 시점</td>
 <td class="frm_cell_content">
  <? print_selectbox($_PNJ['possible_work_date_arr'], 'possible_work_date', $possible_work_date, '-- 선택 --', '') ?>
 </td>
</tr>

<tr>
 <td class="frm_cell_title">아이디</td>
 <td class="frm_cell_content">
  <input type="text" name="mb_id" size=30 class="input" value="<?=$mb_id?>">
 </td>
</tr>
<? } ?>

<tr>
 <td class="frm_cell_title">성별</td>
 <td class="frm_cell_content">
  <? print_radio_buttons($_PNJ['sex_arr'], 'sex', $sex, '' , '상관없음'); ?>
 </td>
</tr>

<tr>
 <td style="padding-top:5px;" colspan=2 align=center>
  <input type="image" src="../img/btn_search.gif">
  <a href="javascript:document.forms[0].reset();"><img src="../img/btn_reset.gif"></a>
 </td>
</tr>
</table>
</form>


 </td>
</tr>
</table>

  • 복사

댓글 전체

그러면 뽀대가 안나요. ㅠ..ㅠ...

form 요소에서 action을 없애고, java script에 f.action을 넣으니
... 안되네요.

머리는 띵하구...몸은 쑤시구... 에휴
혹시 해당 form 상단에 다른 form 이 있지 않나요?
서치 라던가 . ....

상단에  form 이 하나 있다면
var f = document.forms[1]; 로 해야 하지 않을까요?

또한 form 에 name 이라던지 id 값을 넣으면 편하실텐데요.
http://www.javascript-coder.com/javascript-form/javascript-form-submit.phtml
를 보면
The form validation script uses the onsubmit() event of the form to validate the input.
The browser
does not trigger
the onsubmit event if
you call the submit method programmatically. Therefore, if the form is using the form validator script, call the onsubmit method also to trigger the validation.
그누보드 style 그대로 아닌가요??? ㅠㅠ

그누보드의 search.skin.php를 그대로 fake 했는데도, 안되네요.
분명히 예전에는 되었는데, 그걸 어딘가 수정해더니...ㅠ..ㅠ...

아~ 그리고 이거는 https로 접속하는 사이트 입니다.
if( typeof(f.mb_id) != 'undefined' && f.age_from.value !='' && f.age_to.value != '' )
  check_count++;

일부 element가 없어서 생긴 오류라서, 위처럼 확인후에 체크하게 해습니다.
java script에 오류가 생기니까 바로 exit 해버려서 폼체크가 안먹혔던 것 입니다.
© SIRSOFT
현재 페이지 제일 처음으로