데이터가 DB로 넘어갈때 이벤트 실행하는게 이렇게 한는게 맞나요?
본문
form.php 전체 소스 입니다
이 페이지에서 상담신청 버튼을 눌러서 input항목을 입력하지 않고 버튼을 눌르면 db가 전송이 안되기 때문에 이때는 스크립트가 실행이 안되고 항목을 다 채우고 버튼클릭시 정상적으로 db로 데이터가 넘어갈때 스크립트가 실행되게 하고 싶습니다.
<form enctype="multipart/form-data" id="form" name="form" method="post" onsubmit="return form_Check();" action="<?php echo G5_URL.'/0/form_send.php';?>">
<input type="hidden" name="mode" value="send">
<input type="hidden" name="wr_subject" value="신청">
<div id="mct_07">
<div class="ref">
<ul>
<li><p>제품</p></li>
<li>
<select class="select" id="wr_3" name="wr_3" required>
<option value="">선택해 주세요</option>
<option value="책상">책상</option>
<option value="의자">의자</option>
</select>
</li>
</ul>
</div>
<div class="ref">
<ul>
<li><p>수량</p></li>
<li>
<select class="select" id="wr_2" name="wr_2" required>
<option value="">선택해 주세요</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</li>
</ul>
</div>
<div class="ref">
<ul>
<li><p>이름</p></li>
<li><input type="text" id="wr_name" name="wr_name" class="full_ip" required placeholder="이름을 입력해 주세요"></li>
</ul>
</div>
<div class="ref">
<ul>
<li><p>연락처</p></li>
<li><input type="text" id="wr_1" name="wr_1" class="full_ip" required placeholder="연락처를 입력해 주세요"></li>
</ul>
</div>
</div>
</div>
</div>
<div class="btns">
<button class="btn_03" onmousedown="if(typeof mobConv != 'undefined'){mobConv();}">신청하기</button>
</div>
</div>
</div>
</form>
<script>
function form_Check(){
if(form.wr_name.value == ''){
alert("이름을 입력해주세요");
form.wr_name.focus();
return false;
}
if(form.wr_1.value ==''){
alert("연락처를 입력해주세요");
form.wr_1.focus();
return false;
}
if(form.wr_2.value ==''){
alert("선택해주세요");
form.wr_2.focus();
return false;
}
if(form.wr_3.value ==''){
alert("선택해주세요");
form.wr_3.focus();
return false;
} else {
form.submit();
_tfa.push({notify: 'event', name: 'lead', id: 1323402});
}
};
</script>
원래는 아래처럼 스크립트 따로 했놨었는데 위처럼 하면 form 체크후 데이터 넘어갈때 실행되나요?
<script>
function mobConv(){
_tfa.push({notify: 'event', name: 'lead', id: 1323402});
}
</script>
위처럼 넣으면 넣으면 되는건가요???
답변 2
동시 실행이라는것은 실질적으로 존재하지 않습니다.
그렇게 보이게 처리를 하는 것일뿐
넘어 갈 때 실행하고 싶다는것은 넘어간 후 데이터가 처리 되고나서를 원하시는건지
아니면 데이터 처리 전에 실행 후 데이터를 처리하고 싶은건지 명확히 하셔야 합니다.
해당 폼의 유효성검사들이 끝난 후 mobConv() 안에 있는 구문을 실행시키고 싶으신거라면 submit 이전에 해당 함수를 실행시키셔야 합니다
submit 이벤트는 페이지가 이동하는 동작이므로 그 이후의 스크립트들은 무시됩니다.
만약 submit 이벤트 후 실행시키고 싶으신것이라면 ajax, 콜백 등을 활용하셔야 합니다
해당 필드의 입력 유효성만 검사하려면
required="required"
이런식으로 넣어주셔도 되고
그누보드 자체 함수인
class="required"
이런 형태로 넣어주셔도 됩니다.
그 외에 form 단에서 검사하고 싶으시면
이런 방법도 있습니다.
위 예시 중 입맛에 맞는것으로 하시면됩니다.