찾다
웹 프론트엔드프런트엔드 Q&A자바스크립트로 동적 양식을 만드는 방법

인터넷 애플리케이션의 지속적인 개발로 인해 사용자는 웹 사이트의 대화형 경험에 대한 요구 사항이 점점 더 높아지고 있습니다. 동적 양식은 사용자 상호 작용 경험을 향상시키는 중요한 방법 중 하나입니다. 프론트 엔드 개발에 필수적인 기술인 JavaScript는 동적 양식 효과를 매우 잘 구현할 수도 있습니다. 이 기사에서는 양식 요소의 동적 추가, 삭제 및 조건부 렌더링 측면에서 JavaScript를 사용하여 동적 양식을 작성하는 방법을 소개합니다.

1. 양식 요소의 동적 추가

일반적으로 웹 사이트의 양식은 HTML 코드로 완성되지만 HTML 코드로 작성된 양식은 정적이며 사용자가 입력하는 데이터도 정적이므로 동적 추가가 불가능합니다. 달성. 동적 삭제 및 기타 기능. JavaScript에서는 DOM 작업을 통해 양식 요소를 동적으로 추가할 수 있습니다.

다음은 JavaScript를 사용하여 양식에 텍스트 상자를 동적으로 추가하는 방법을 보여주는 간단한 예입니다.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>动态表单</title>
    <script type="text/javascript">
      function addInput() {
        var form = document.getElementById("myForm");
        var input = document.createElement("input");
        input.type = "text";
        form.appendChild(input);
      }
    </script>
  </head>
  <body>
    <form id="myForm">
      <input type="button" value="添加文本框" onclick="addInput()">
    </form>
  </body>
</html>

이 예에서는 JavaScript를 통해 텍스트 상자가 생성되어 양식에 추가됩니다. 사용자는 "텍스트 상자 추가" 버튼을 클릭하여 새 텍스트 상자를 동적으로 추가할 수 있습니다.

2. 양식 요소의 동적 삭제

실제 응용에서는 양식 요소를 추가하는 것 외에도 양식 요소를 삭제해야 하는 경우도 있습니다. 마찬가지로 양식 요소는 DOM 조작을 통해 쉽게 제거될 수 있습니다.

다음은 JavaScript를 사용하여 양식에서 텍스트 상자를 삭제하는 방법을 보여주는 간단한 예입니다.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>动态表单</title>
    <script type="text/javascript">
      function removeInput() {
        var form = document.getElementById("myForm");
        var inputs = form.getElementsByTagName("input");
        form.removeChild(inputs[inputs.length-1]);
      }
    </script>
  </head>
  <body>
    <form id="myForm">
      <input type="text"><br>
      <input type="text"><br>
      <input type="button" value="删除最后一个文本框" onclick="removeInput()">
    </form>
  </body>
</html>

이 예에서는 JavaScript를 통해 양식의 모든 텍스트 상자 요소를 가져온 다음 마지막 텍스트 상자를 삭제합니다. 양식 요소를 제거할 때 removeChild() 메서드를 사용하세요. removeChild() 方法。

三、表单元素的条件渲染

有时候需要根据用户输入的内容,动态改变表单的显示内容。比如说,在注册表单中,当用户选择“企业用户”时,需要显示企业相关的表单元素;当用户选择“个人用户”时,需要显示个人相关的表单元素。这个时候,就需要用到表单元素的条件渲染功能。

下面是一个简单的例子,展示了如何用 JavaScript 实现表单元素的条件渲染:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>动态表单</title>
    <script type="text/javascript">
      function showFields() {
        var userType = document.getElementById("userType").value;
        var personalFields = document.getElementById("personalFields");
        var companyFields = document.getElementById("companyFields");
        if (userType === "personal") {
          personalFields.style.display = "block";
          companyFields.style.display = "none";
        } else {
          personalFields.style.display = "none";
          companyFields.style.display = "block";
        }
      }
    </script>
  </head>
  <body>
    <form>
      <label>
        用户类型:
        <select id="userType" onchange="showFields()">
          <option value="personal">个人用户</option>
          <option value="company">企业用户</option>
        </select>
      </label>
      <br><br>
      <fieldset id="personalFields">
        <legend>个人用户信息</legend>
        姓名:<input type="text"><br>
        年龄:<input type="text"><br>
      </fieldset>
      <fieldset id="companyFields" style="display: none;">
        <legend>企业用户信息</legend>
        公司名称:<input type="text"><br>
        职位:<input type="text"><br>
      </fieldset>
    </form>
  </body>
</html>

在这个例子中,定义了一个表单,包含了一个下拉菜单和两个字段集。通过下拉菜单,用户可以选择“个人用户”或“企业用户”,然后显示相应的字段集。

在代码中,通过 getElementById() 方法获取了下拉菜单和两个字段集的元素,并分别存储在了变量 userTypepersonalFieldscompanyFields 中。在 showFields() 函数中,根据下拉菜单的值,判断应该显示哪个字段集。这里使用了 style.display

3. 양식 요소의 조건부 렌더링

때로는 사용자가 입력한 콘텐츠에 따라 양식의 표시 콘텐츠를 동적으로 변경해야 하는 경우가 있습니다. 예를 들어, 등록 양식에서 사용자가 "기업 사용자"를 선택하면 기업 관련 양식 요소가 표시되어야 하며, 사용자가 "개인 사용자"를 선택하면 개인 관련 양식 요소가 표시되어야 합니다. 이때 폼 요소의 조건부 렌더링 기능을 사용해야 합니다.

다음은 JavaScript를 사용하여 양식 요소의 조건부 렌더링을 구현하는 방법을 보여주는 간단한 예입니다. 🎜rrreee🎜이 예에서는 드롭다운 메뉴와 두 개의 필드 세트가 포함된 양식이 정의됩니다. 드롭다운 메뉴를 통해 사용자는 "개인 사용자" 또는 "비즈니스 사용자"를 선택할 수 있으며 해당 필드 세트가 표시됩니다. 🎜🎜코드에서 드롭다운 메뉴의 요소와 두 개의 필드 세트는 getElementById() 메서드를 통해 가져오고 userType 변수에 저장되며 각각 personalFieldscompanyFields입니다. showFields() 함수에서 드롭다운 메뉴의 값에 따라 표시되어야 하는 필드 세트를 결정합니다. 여기서 style.display 속성은 요소의 표시 또는 숨기기를 제어하는 ​​데 사용됩니다. 🎜🎜요약🎜🎜이 문서에서는 양식 요소의 동적 추가, 삭제 및 조건부 렌더링을 포함하여 JavaScript가 동적 양식을 구현하는 방법을 소개합니다. DOM 작업을 통해 이러한 기능을 쉽게 구현할 수 있으므로 사용자의 대화형 경험이 향상됩니다. 보다 복잡한 양식 상호 작용 효과를 얻으려면 jQuery 또는 기타 프런트 엔드 프레임워크 사용을 고려할 수도 있습니다. 🎜

위 내용은 자바스크립트로 동적 양식을 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
usestate () 이해 : 국가 관리에 대한 포괄적 인 안내서usestate () 이해 : 국가 관리에 대한 포괄적 인 안내서Apr 25, 2025 am 12:21 AM

usestate () isareacthookusedtomanagestatefunctionalcomponents.1) itinitializesandupdatesstate, 2) workaledtthetThetThepleFcomponents, 3) canleadto'Stalestate'ifnotusedCorrecrally 및 4) performancanoptimizedUsecandusecaldates.

React 사용의 장점은 무엇입니까?React 사용의 장점은 무엇입니까?Apr 25, 2025 am 12:16 AM

Reactispopularduetoitscomponent 기반 아카데입, 가상, Richcosystem 및 declarativenature.1) 구성 요소 기반 ectureallowsforeusableuipieces, Modularityandmainability 개선 가능성.

React의 디버깅 : 일반적인 문제를 식별하고 해결합니다React의 디버깅 : 일반적인 문제를 식별하고 해결합니다Apr 25, 2025 am 12:09 AM

TodebugreactApplicationseffective, UsetheseStradegies : 1) 주소 propdrillingwithContapiorredux.2) handleaSnchronousOperationswithUsestAndUseefect, abortControllerTopReceConditions.3) 최적화 formanceSeMoAnduseCalbackTooid

React의 usestate () 란 무엇입니까?React의 usestate () 란 무엇입니까?Apr 25, 2025 am 12:08 AM

usestate () inreactAllowsStateManagementInfunctionalComponents.1) itsimplifiessTatemanagement, 2) usethepRevCountFunctionToupDatesTestateSpreviousValue, PropeingStaleScallanceBackferperperperperperperperperperperperperpertoptiMizatio

usestate () vs. usereducer () : 주 요구에 맞는 올바른 후크 선택usestate () vs. usereducer () : 주 요구에 맞는 올바른 후크 선택Apr 24, 2025 pm 05:13 PM

chelectionSimple, IndependentStateVaribles; useUserEducer () useuserEducer () forcomplexStateLogicor () whenStatedSonpreviousState.1) usestate () isidealforsimpleupdatesliketogglingabooleorupdatingacounter.2) usbetterformanagingmentiplesub-vvalusorac

usestate ()로 상태 관리 : 실용적인 자습서usestate ()로 상태 관리 : 실용적인 자습서Apr 24, 2025 pm 05:05 PM

Usestate는 클래스 구성 요소 및 기타 상태 관리 솔루션보다 우수합니다. 국가 관리를 단순화하고 코드를 더 명확하게하고 읽기 쉽고 React의 선언적 특성과 일치하기 때문입니다. 1) Usestate는 함수 구성 요소에서 상태 변수를 직접 선포 할 수있게합니다. 2) 후크 메커니즘을 통해 다시 렌더링하는 동안 상태를 기억합니다.

usestate ()를 사용하고 대체 상태 관리 솔루션을 고려할 때usestate ()를 사용하고 대체 상태 관리 솔루션을 고려할 때Apr 24, 2025 pm 04:49 PM

useUsestate () forlocalcomponentStateManagement; 고려 사항 forglobalstate, complexlogic, orperformanceissues.1) usestate () isidealforsimple, localstate.2) useglobalstatesolutionslikereduxorcontextforsharedstate.3) optforredooxtoolkitormobxcomcoccomcoccomcoccomcoccomcoccomcoccomcoccomcoccomporccomcoccomporccomcoccomport

React의 재사용 가능한 구성 요소 : 코드 유지 관리 및 효율성 향상React의 재사용 가능한 구성 요소 : 코드 유지 관리 및 효율성 향상Apr 24, 2025 pm 04:45 PM

reusablecomponentsinreacececodemainabenabilityandefficiency는 hallowingesamecomponentacrossdifferentpartsofanapplicationorprojects.1) 그들을 retuduceredundancyandsimplifyupdates.2) theyseconsistencyinuserexperience.3) theyquireoptim

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는