Select, textarea, button
Form-ийн бүрдэл хэсгүүдийн дотроос <select>, <textarea>, <button> нь хамгийн өргөн хэрэглэгддэг гурав. Энэ хичээлд тэдгээрийг болон форм бүлэглэгч <fieldset> элементийг үзнэ.
<select> — унждаг жагсаалт
<label for="course">Курс сонгох</label>
<select id="course" name="course">
<option value="html">HTML</option>
<option value="css">CSS</option>
<option value="javascript">JavaScript</option>
</select>
<option>-ийн value — серверт явах өгөгдөл. Харагдах текст нь хэрэглэгчид харагдана.
Анхны сонголт тохируулах
<select name="level">
<!-- selected — анхнаасаа сонгосон байна -->
<option value="">— Сонгоно уу —</option>
<option value="beginner">Эхлэгч</option>
<option value="intermediate" selected>Дунд</option>
<option value="advanced">Ахисан</option>
</select>
Хоосон value="" бүхий эхний <option> нь "сонгоогүй" байдлыг илэрхийлэх нийтлэг дадал.
Олон сонголт
<!-- multiple — Ctrl/Cmd дарж олон сонгоно -->
<select name="skills" multiple size="4">
<option value="html">HTML</option>
<option value="css">CSS</option>
<option value="js">JavaScript</option>
<option value="python">Python</option>
</select>
optgroup — бүлэглэх
<select name="course">
<optgroup label="Вэб">
<option value="html">HTML</option>
<option value="css">CSS</option>
</optgroup>
<optgroup label="Backend">
<option value="python">Python</option>
<option value="go">Go</option>
</optgroup>
</select>
<optgroup> нь сонголтуудыг харагдах бүлэгт хуваана — label attribute харагдах гарчиг болно, гэхдээ сонгох боломжгүй.
<textarea> — олон мөрт текст
<label for="bio">Танилцуулга</label>
<textarea id="bio" name="bio" rows="5" cols="40">
Анхны текст энд байна
</textarea>
rows— харагдах мөрийн тооcols— харагдах баганын тэмдэгтийн тоо- Tag хоорондох агуулга нь
valueболно - Хэрэглэгч баруун доод буланг чирж хэмжээг өөрчилж болно
<!-- resize хаах нь CSS-ээр хийгдэнэ -->
<textarea name="message" rows="4" style="resize: none;"></textarea>
<input> нэг мөр л авдаг, <textarea> олон мөр авдаг — энэ нь гол ялгаа.
<button> — товч
Button нь гурван type-тай:
<!-- submit — form илгээнэ (default) -->
<button type="submit">Илгээх</button>
<!-- reset — form-ийн бүх утгыг анхны байдалд оруулна -->
<button type="reset">Цэвэрлэх</button>
<!-- button — form-д нөлөөлөхгүй, JavaScript-д зориулна -->
<button type="button" onclick="alert('Сайн байна уу!')">Мэндлэх</button>
type заахгүй бол submit болдог тул form дотор JavaScript товч хийхдээ type="button" заавал тавих хэрэгтэй, эс тэгвэл form илгэгддэг.
Button дотор HTML
<!-- Зураг + текст хослуулж болно -->
<button type="submit">
✓ Хадгалах
</button>
<!-- Идэвхгүй болгох -->
<button type="submit" disabled>Хадгалах</button>
<fieldset> ба <legend> — бүлэглэх
Хамаарал бүхий input-уудыг бүлэглэж, гарчиг өгнэ:
<form action="/register" method="POST">
<fieldset>
<legend>Хувийн мэдээлэл</legend>
<label for="fname">Нэр</label>
<input type="text" id="fname" name="firstname" />
<label for="lname">Овог</label>
<input type="text" id="lname" name="lastname" />
<label for="bday">Төрсөн огноо</label>
<input type="date" id="bday" name="birthday" />
</fieldset>
<fieldset>
<legend>Нэвтрэх мэдээлэл</legend>
<label for="email">И-мэйл</label>
<input type="email" id="email" name="email" />
<label for="password">Нууц үг</label>
<input type="password" id="password" name="password" />
</fieldset>
<button type="submit">Бүртгүүлэх</button>
</form>
<fieldset> нь хүрээ зуран бүлэглэдэг, <legend> нь тухайн бүлгийн гарчиг болдог. Screen reader хэрэглэгчид бүлгийн нэрийг уншиж өгдөг тул accessibility сайжирна.
Бүрэн жишээ — холбоо барих форм
<!DOCTYPE html>
<html lang="mn">
<head>
<meta charset="UTF-8" />
<title>Холбоо барих</title>
</head>
<body>
<h1>Холбоо барих</h1>
<form action="/contact" method="POST">
<fieldset>
<legend>Таны мэдээлэл</legend>
<label for="name">Нэр</label>
<input type="text" id="name" name="name" />
<label for="email">И-мэйл</label>
<input type="email" id="email" name="email" />
</fieldset>
<fieldset>
<legend>Мессеж</legend>
<label for="subject">Сэдэв</label>
<select id="subject" name="subject">
<option value="">— Сонгоно уу —</option>
<option value="question">Асуулт</option>
<option value="bug">Алдаа мэдэгдэх</option>
<option value="other">Бусад</option>
</select>
<label for="message">Мессеж</label>
<textarea id="message" name="message" rows="5"></textarea>
</fieldset>
<button type="submit">Илгээх</button>
<button type="reset">Цуцлах</button>
</form>
</body>
</html>
Дараагийн хичээлд:
Semantic HTML гэж юу болохыг үзнэ. <div> ба <span> шиг утгагүй элементийн оронд утга агуулсан элементүүдийг ашиглах нь SEO, accessibility, код уншигдах чанарт хэрхэн нөлөөлдгийг тайлбарлана.