HTML 양식에 대한 깊은 이해
양식 요소
HTML에서 HTML5로 양식 관련 요소가 크게 확장되었으며 기본적으로 우리의 일반적인 요구를 충족할 수 있습니다. 하지만 실제 업무에서는 상호 작용 또는 브라우저 호환성 요구 사항으로 인해 기본 양식 요소를 확장하거나 시뮬레이션해야 하는 경우가 있습니다. 하지만 그 전에 다양한 형태 요소를 명확하게 이해하고 숙달하는 것이 여전히 중요합니다. 이 기사에서는 양식 요소(기본적으로 HTML5 양식 요소)에 대해 자세히 설명하겠습니다.
양식
● 양식은 제출 이벤트를 자동으로 처리합니다(제출 이벤트는 일반적으로 type=submit의 입력 또는 버튼 요소에 의해 트리거됩니다)
●양식은 자동으로 확인 레이어를 수행하고 form.novalidate를 사용하여 설정합니다. 기본 유효성 검사
●Form은 각 양식 요소의 이름을 기반으로 해당 사용자 입력을 얻은 다음 작업 속성에 해당하는 URL 끝에 쿼리 문자열 형식의 양식 데이터를 추가합니다. . 기본 요청 방법은 GET이고 기본 작업은 현재 URL입니다.
●event.target.elements는 모든 대화형 요소를 반환합니다
<form novalidate> <input name='username' required/> <input name='passworkd' type='password' required/> <input name='email' type='email'/> <input type='submit' value='submit'/> </form>
위 코드를 실행하면 양식을 제출한 후 브라우저의 주소가 쿼리를 추가하는 것을 볼 수 있습니다. username=tom&passworkd=123&email=test%40gmail.com
상호작용 요소
사용자와 상호 작용하고 사용자 입력을 받아야 하는 유형을 분류합니다. 양식 요소를 대화형 양식 요소로 사용합니다.
일부는 다음과 같습니다.
●입력: 일반적으로 사용되는 유형에는 체크박스, 전화번호, 전화번호, 이메일 등이 포함됩니다.
●텍스트 영역
●select
●옵션
피드백 요소
단순히 정보를 피드백하고 사용자와의 상호 작용이 필요하지 않은 양식 요소를 피드백 양식으로 분류합니다. 요소.
일부는 다음과 같습니다.
●meter
●output
<form oninput="result.value=parseInt(a.value)+parseInt(b.value)"> <input type='number' value='50' name='a' /> <input type='number' value='10' name='b' /> <output name='result'>60</output> </form>
출력의 경우 form.oninput에서 계산된 값을 설정할 수 있습니다
그룹화된 요소
이 유형의 양식 요소는 여러 양식 요소를 그룹화하는 데 사용됩니다.
일부 목록은 다음과 같습니다.
●fieldset
●optgroup
<form> <select> <optgroup label='group1'> <option>1</option> <option>2</option> <option>3</option> </optgroup> <optgroup label='group2'> <option>4</option> <option>5</option> <option>6</option> </optgroup> <optgroup label='group3'> <option>7</option> <option>8</option> <option>9</optioin> </optgroup> </select> </form>
label
● 용도 ID
와 연결된 해당 대화형 요소에 연결할 수 있습니다. 여러 개의 대화형 요소를 래핑하는 데 사용할 수 있으며 첫 번째 요소를 제어할 수 있습니다.
●레이블을 중첩하는 것은 권장되지 않습니다
<form> <fieldset> <legend>Title</legend> <label for='radio'>Click me</label> <input type='radio' id='radio'/> </fieldset> </form>
<form> <fieldset> <legend>用户信息</legend> <label> 男 <input type='radio' name='gender' id='male' /> </label> <label> 女 <input type='radio' name='gender' id='female'/> </label> </fieldset> </form>
JavaScript를 사용하여 양식 처리
필드 추상화
가장 기본적인 구조:
field: { name: String, value: String || String[] }
● 값의 String[]을 주로 사용하며, 이를 String으로 나누어 합성한다
●복잡한 구조를 가진 이름의 경우 위의 코드와 같다면 keyPath
const fromKeyValues = { 'user.name': 'Tom', 'user.phone[0].number': '123456', 'user.phone[0].type': 'mobile' }; const fromValues = { user: { name: 'Tom', phone: [ { number: '123456', type: 'mobile' } ] } };
를 사용할 수 있다. 명확하지 않습니다. qs를 참조하세요
완전한 구현
●양식의 기본 제출 이벤트 방지
●값 대신 확인란을 선택해야 함
● select-multiple은 여러 값을 저장해야 합니다
●위의 특수 대화형 요소를 제외하고 다른 요소는 기본적으로 value에서 값을 가져옵니다
양식 .html
<form> <fieldset> <legend>Login</legend> <input name='username' placeholder='username' minlength='2'/> <input name='password' type='password' placeholder='password'/> <label> remember password <input name='checkbox' type='checkbox'/> </label> </fieldset> <fieldset> <p class="gender"> <legend>More Info</legend> <label> 男 <input name='gender' type='radio' value='male' /> </label> <label> 女 <input name='gender' type='radio' value='female' /> </label> </p> <select name='select' multiple> <option>1</option> <optgroup label='2'> <option>2.1</option> <option>2.2</option> </optgroup> </select> </fieldset> <button type='submit'>Submit</button></form>
form.js
var $form = document.querySelector('form'); function getFormValues(form) { var values = {}; var elements = form.elements; // elemtns is an array-like object for (var i = 0; i < elements.length; i++) { var input = elements[i]; if (input.name) { switch (input.type.toLowerCase()) { case 'checkbox': if (input.checked) { values[input.name] = input.checked; } break; case 'select-multiple': values[input.name] = values[input.name] || []; for (var j = 0; j < input.length; j++) { if (input[j].selected) { values[input.name].push(input[j].value); } } break; default: values[input.name] = input.value; break; } } } return values; } $form.addEventListener('submit', function(event) { event.preventDefault(); getFormValues(event.target); console.log(event.target.elements); console.log(getFormValues(event.target)); });

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











HTML의 테이블 테두리 안내. 여기에서는 HTML의 테이블 테두리 예제를 사용하여 테이블 테두리를 정의하는 여러 가지 방법을 논의합니다.

HTML 여백-왼쪽 안내. 여기에서는 HTML margin-left에 대한 간략한 개요와 코드 구현과 함께 예제를 논의합니다.

HTML의 Nested Table에 대한 안내입니다. 여기에서는 각 예와 함께 테이블 내에 테이블을 만드는 방법을 설명합니다.

HTML 테이블 레이아웃 안내. 여기에서는 HTML 테이블 레이아웃의 값에 대해 예제 및 출력 n 세부 사항과 함께 논의합니다.

HTML 입력 자리 표시자 안내. 여기서는 코드 및 출력과 함께 HTML 입력 자리 표시자의 예를 논의합니다.

HTML 순서 목록에 대한 안내입니다. 여기서는 HTML Ordered 목록 및 유형에 대한 소개와 각각의 예에 대해서도 설명합니다.

HTML에서 텍스트 이동 안내. 여기서는 Marquee 태그가 구문과 함께 작동하는 방식과 구현할 예제에 대해 소개합니다.

HTML onclick 버튼에 대한 안내입니다. 여기에서는 각각의 소개, 작업, 예제 및 다양한 이벤트의 onclick 이벤트에 대해 설명합니다.
