아래 편집기는 JavaScript 기반 양식 스크립트를 제공합니다(자세한 설명). 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리도록 하겠습니다. 에디터를 따라가며 함께 살펴볼까요
양식이란 무엇인가요?
양식에는 세 가지 기본 구성 요소가 있습니다. 양식 태그: 여기에는 양식 데이터를 처리하는 데 사용되는 CGI 프로그램의 URL과 데이터를 서버에 제출하는 방법이 포함됩니다. 양식 필드: 텍스트 상자, 비밀번호 상자, 숨겨진 필드, 여러 줄 텍스트 상자, 확인란, 라디오 버튼 상자, 드롭다운 선택 상자, 파일 업로드 상자 등이 포함됩니다. 양식 버튼: 서버의 CGI 스크립트로 데이터를 전송하거나 입력을 취소하는 데 사용되는 제출 버튼, 재설정 버튼 및 일반 버튼이 포함됩니다. 양식 버튼은 정의된 처리 스크립트를 사용하여 다른 처리 작업을 제어하는 데에도 사용할 수 있습니다.
JavaScript와 양식의 관계: JS의 초기 적용은 양식 처리에 대한 서버의 책임을 공유하고 서버에 대한 의존성을 깨는 것이었습니다. 웹과 JavaScript가 큰 발전을 이루었지만 웹 양식은 여전히 사용되지 않습니다. 많은 공통 작업 기성 솔루션을 제공함으로써 많은 개발자는 양식을 검증할 때 JavaScript를 사용할 뿐만 아니라 일부 표준 양식 컨트롤의 기본 동작을 향상시킵니다.
1. 양식에 대한 기본 지식
HTML에서 양식은 HTMLFormElement 유형에 해당하므로 기본값이 동일합니다.
acceptCharset: 서버가 처리할 수 있는 문자 집합입니다. HTML의 accept-charset 기능과 동일합니다.
action: HTML의 action 속성에 해당하는 요청된 URL을 허용합니다.
elements: 양식(HTMLCollection)에 있는 모든 컨트롤의 컬렉션입니다.
enctype: 요청된 인코딩 유형입니다. HTML의 enctype 기능과 동일합니다.
length: 양식의 컨트롤 수입니다.
method: 전송할 HTTP 요청 유형으로, 일반적으로 HTML의 method 속성과 동일합니다.
name: 양식의 이름으로 HTML의 name 속성과 동일합니다.
reset(): 모든 양식 필드를 기본값으로 재설정합니다.
submit(): 양식을 제출합니다.
target: 요청을 보내고 응답을 받는 데 사용되는 창의 이름입니다. HTML의 target 속성에 해당합니다.
양식 양식 요소를 얻는 방법은 다음과 같습니다. var form=document.getElementById('form1'); //id로 양식 요소 가져오기
var firstForm=document.forms[0] //document.forms를 모두 가져오기 페이지의 양식 요소는 인덱스 값 '0'을 통해 첫 번째 양식 요소를 가져옵니다.
var form2=document.forms['form2']; //document.forms를 통해 페이지의 모든 양식 요소를 가져옵니다. 이름 값으로 양식 요소
이런 방식으로 양식을 제출하면 브라우저는 서버에 요청을 보내기 전에 제출 이벤트를 트리거합니다. 이를 통해 양식 데이터의 유효성을 검사하고 이를 사용하여 양식 제출을 허용할지 여부를 결정할 수 있습니다. 이 이벤트의 기본 동작을 차단하면 양식 제출이 취소될 수 있습니다.
JS에서는 프로그래밍 방식으로 submit() 메서드를 호출하여 양식을 제출할 수도 있습니다.
var form = document.getElementById("myForm");
//提交表单
form.submit();
로그인 후 복사
양식 제출 차단(기본 이벤트 차단):
var form = document.getElementById("myForm");
EventUtil.addHandler(form, "submit", function(event){
//取得事件对象
event = EventUtil.getEvent(event);
//阻止默认事件
EventUtil.preventDefault(event);
});
var form = document.getElementById("myForm");
//重置表单
form.reset();
로그인 후 복사
양식 재설정을 방지하는 기본 작업:
var form = document.getElementById("myForm");
EventUtil.addHandler(form, "reset", function(event){
//取得事件对象
event = EventUtil.getEvent(event);
//阻止表单重置
EventUtil.preventDefault(event);
});
로그인 후 복사
양식 필드:
각 양식에는 Element 속성이 있습니다. 이는 양식의 모든 속성입니다. 양식 요소(필드)의 컬렉션입니다. 이 컬렉션은 순서가 지정된 목록입니다. 각 양식 필드가 요소 컬렉션에 나타나는 순서는 태그에 나타나는 순서와 동일하며 위치 및 이름 값으로 액세스할 수 있습니다. 일반 양식 필드에는 입력, 선택 및 필드 세트가 포함됩니다. 양식에서 양식 필드를 얻으려면:
var form = document.getElementById("form1");
//取得表单中的第一个字段
var field1 = form.elements[0];
//取得名为"textbox1"的字段
var field2 = form.elements["textbox1"];
//取得表单中包含的字段的数量
var fieldCount = form.elements.length;
로그인 후 복사
일반 양식 필드 속성:
disabled: 현재 필드가 비활성화되었는지 여부를 나타내는 부울 값입니다.
form: 현재 필드가 속한 양식에 대한 포인터입니다.
name: 현재 필드의 이름입니다.
readOnly: 현재 필드가 읽기 전용인지 여부를 나타내는 부울 값입니다.
tabIndex: 현재 필드의 전환(탭) 번호를 나타냅니다.
type: "checkbox", "radio" 등과 같은 현재 필드의 유형입니다.
value: 서버에 제출될 현재 필드의 값입니다. 파일 필드의 경우 이 속성은 읽기 전용이며 컴퓨터에 있는 파일의 경로를 포함합니다. 양식 속성을 제외한 다른 모든 속성은 JavaScript를 통해 동적으로 수정될 수 있습니다.
양식 필드 속성을 동적으로 수정할 수 있다는 것은 언제든지 어떤 방식으로든 양식을 동적으로 조작할 수 있다는 의미입니다.