Heim > Artikel > Web-Frontend > Tiefes Verständnis von HTML-Formularen
Formularelemente
Von HTML zu HTML5 wurden formularbezogene Elemente stark erweitert und können grundsätzlich unsere allgemeinen Anforderungen erfüllen. Aber in der tatsächlichen Arbeit, Aufgrund von Interaktions- oder Browserkompatibilitätsanforderungen müssen native Formularelemente manchmal erweitert oder simuliert werden. Zuvor ist es jedoch noch wichtig, die verschiedenen Formelemente klar zu verstehen und zu beherrschen. In diesem Artikel, Wir werden Formularelemente (standardmäßig HTML5-Formularelemente) im Detail erklären.
Formular
● Das Formular verarbeitet automatisch das Submit-Ereignis (das Submit-Ereignis wird normalerweise durch das Eingabe- oder Schaltflächenelement von type=submit ausgelöst)
●Das Formular führt automatisch eine Überprüfungsebene durch und verwendet form.novalidate zum Umwandeln aus der nativen Validierung
●Form erhält die entsprechende Benutzereingabe basierend auf dem Namen jedes Formularelements und fügt dann die Formulardaten in Form einer Abfragezeichenfolge am Ende der URL hinzu, die dem Aktionsattribut entspricht . Die Standardanforderungsmethode ist GET und die Standardaktion ist die aktuelle URL.
●event.target.elements gibt alle interaktiven Elemente zurück
<form novalidate> <input name='username' required/> <input name='passworkd' type='password' required/> <input name='email' type='email'/> <input type='submit' value='submit'/> </form>
Wenn Sie den obigen Code ausführen, können Sie sehen, dass nach dem Absenden des Formulars der Browser die Adresse zurückgibt Fügen Sie eine Abfragezeichenfolge wie diese hinzu?username=tom&passworkd=123&email=test%40gmail.com
Interaktive Elemente
Muss mit dem Benutzer interagieren und erhalten Wir klassifizieren diesen Typ von Formularelementen, die von Benutzern als interaktive Formularelemente eingegeben werden.
Einige sind unten aufgeführt:
●Eingabe: Zu den häufig verwendeten Typen gehören „Kontrollkästchen“, „Tel“, „Nummer“, „E-Mail“ usw.
●Textbereich
●Auswählen
●Option
Feedback-Elemente
Formularelemente, die einfach Informationen zurückmelden und keine Interaktion mit dem Benutzer erfordern, wir klassifizieren sie als Feedback-Formular Element.
Im Folgenden sind einige aufgeführt:
●Meter
●Ausgabe
<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>
Für die Ausgabe können Sie den berechneten Wert in form.oninput
Gruppierte Elemente
Dieser Formularelementtyp wird zum Gruppieren mehrerer Formularelemente verwendet. Wir klassifizieren sie als gruppierte Formularelemente. Einige sind unten aufgeführt:●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
● Verwenden Sie for, um eine Verbindung zum entsprechenden interaktiven Element herzustellen, das der ID zugeordnet ist ●Kann zum Umschließen interaktiver Elemente, einschließlich mehrerer, verwendet werden, um das erste zu steuern ●Eine Verschachtelung wird nicht empfohlen Etiketten<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>
Verwenden Sie JavaScript, um Formulare zu verarbeiten
Abstraktion des FeldesDie grundlegendste Struktur:field: { name: String, value: String || String[] }●Der String[] des Werts wird normalerweise verwendet, aufgeteilt und zu einem String synthetisiert●Für Namen mit komplexen Strukturen können Sie keyPath verwenden
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' } ] } };Wenn der obige Code nicht sehr klar ist, lesen Sie bitte qs
für eine vollständige Implementierung
●Standard-Übermittlungsereignis für Formulare blockieren●Das Kontrollkästchen muss anstelle des Werts aktiviert sein●select-multiple muss mehrere Werte speichern●Mit Ausnahme der oben genannten speziellen interaktiven Elemente übernehmen die anderen ihre Werte von Wert standardmäßigform.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