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의 Nested Table에 대한 안내입니다. 여기에서는 각 예와 함께 테이블 내에 테이블을 만드는 방법을 설명합니다.

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

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

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

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

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다

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