//use_javascript.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>자바스크립트를 사용한 데이터 전송</title>
// 입력 데이터 오류 검사
<SCRIPT LANGUAGE="javascript">
// check 함수 정의
function check() {
// TEXT 입력양식(document.user.input_data)내에 입력된 값(value)
// 참이 아닐 경우 = 사용자가 데이터 입력 X
if(!document.user.input_data.value) {
// alert() 함수 사용해 데이터 입력하라는 메시지 출력
alert("데이터를 입력하세요.");
// 입력양식에 데이터 입력하도록 마우스 포인터 이동
document.user.input_data.focus();
// return에 의해 스크립트의 수행 종료
return;
}
// if 조건문 불만족 -> submit() 메소드에 의해
// 입력된 데이터 ACTION 속성에서 지정한 user_login.jsp 문서로 전송됨
document.user.submit();
}
</SCRIPT>
</head>
<body>
<FORM NAME="user" METHOD=POST ACTION="user_login.jsp">
입력데이터 : <INPUT TYPE=TEXT NAME="input_data" SIZE=20>
// onClick() 이벤트 핸들러로 check()라는 자바스크립트 함수 지정
// [전송] 버튼 클릭하면 check() 자바스크립트 함수 호출됨
<INPUT TYPE="button" VALUE="전송" onClick='javascript:check()'>
</FORM>
</body>
</html>
결과

FORM 태그의 실제 이름을 check() 함수의 인자로 사용하는 경우
위 코드에서 호출되는 check()함수에는 인자 존재X
\<INPUT TYPE="button" VALUE="전송" onClick='javascript:check()'>
=> document.user.input_data 같은 긴 문자열 사용
FORM 태그의 이름인 user를 check() 함수의 인자로 사용
<INPUT TYPE="button" VALUE="전송" onClick='javascript:check(user)'>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>자바스크립트를 사용한 데이터 전송</title>
<SCRIPT LANGUAGE="javascript">
function check(**form**) {
if(!**form**.input_data.value) {
alert("데이터를 입력하세요.");
**form**.input_data.focus();
return;
}
**form**.submit();
}
</SCRIPT>
</head>
<body>
<FORM NAME="user" METHOD=POST ACTION="user_login.jsp">
입력데이터 : <INPUT TYPE=TEXT NAME="input_data" SIZE=20>
// check() 함수 호출되면 form 매개변수에 user 대입됨
// => check() 함수의 모든 document.user는 form으로 변경
<INPUT TYPE="button" VALUE="전송" onClick='javascript:check(**user**)'>
</FORM>
</body>
</html>약간의 문제 존재
- 다른 FORM 태그의 이름인 user를 다른 이름으로 변경한다면?
<FORM NAME="user" METHOD=POST ACTION="user_login.jsp">
⇒ check() 함수의 인자를 변경된 이름으로 수정해야 함
<INPUT TYPE="button" VALUE="전송" onClick='javascript:check(**user**)'>
this 객체를 이용한 FORM 태그의 이름을 인자로 사용하는 경우
<INPUT TYPE="button" VALUE="전송" onClick='javascript:check(this.form)'>전송을 위해 버튼이 아닌 이미지를 사용하는 경우
<INPUT SRC="btn_save.gif" STYLE=CURSOR:HAND>