ใช้แท็ก <textarea> เพื่อแสดงพื้นที่ข้อความ (Text Area) แท็ก <textarea> ใน HTML ใช้ภายในฟอร์มเพื่อประกาศองค์ประกอบ textarea - คอนโทรลที่อนุญาตให้ผู้ใช้ป้อนข้อความหลายบรรทัด
แอตทริบิวต์ของแท็ก <textarea>
| แอตทริบิวต์ | ค่า | คำอธิบาย |
|---|---|---|
autofocus |
autofocus | ระบุว่าเมื่อโหลดหน้า textarea ควรได้รับโฟกัสอัตโนมัติ |
cols |
Number | ระบุความกว้างของ textarea ตามจำนวนตัวอักษรที่มองเห็นได้ (จำเป็น) |
disabled |
disabled | ปิดใช้งานคอนโทรล ไม่สามารถแก้ไข รับโฟกัส หรือ Tab ได้ |
form |
form_id | ระบุฟอร์มหนึ่งหรือหลายฟอร์มที่ textarea เกี่ยวข้อง |
maxlength |
Number | ระบุจำนวนตัวอักษรสูงสุดใน textarea |
minlength |
Number | ระบุจำนวนตัวอักษรขั้นต่ำ (HTML5) |
name |
Text | กำหนดชื่อให้คอนโทรลอินพุต (จำเป็นสำหรับส่งฟอร์ม) |
placeholder |
Text | ระบุคำแนะนำสั้นๆ ของค่าที่คาดหวังใน textarea |
readonly |
readonly | ตั้งค่าเป็นอ่านอย่างเดียว ไม่อนุญาตให้เปลี่ยนแปลง แต่รับโฟกัสและ Tab ได้ |
required |
required | ระบุว่า textarea ต้องถูกกรอกก่อนส่งฟอร์ม |
rows |
Number | ระบุความสูงของ textarea ตามจำนวนบรรทัดที่มองเห็นได้ (จำเป็น) |
wrap |
hard, soft | ระบุการขึ้นบรรทัดอัตโนมัติ: hard=ส่ง line breaks ไปกับฟอร์ม, soft=ไม่ส่ง |
ตัวอย่าง
ลองรันโค้ดต่อไปนี้เพื่อแสดงพื้นที่ข้อความใน HTML:
<!DOCTYPE html>
<html>
<head>
<title>HTML textarea Tag</title>
</head>
<body>
<form action="/cgi-bin/hello_get.cgi" method="get">
<label for="description">Enter subjects:</label>
<br />
<textarea id="description" rows="5" cols="50" name="description"
placeholder="Enter your subjects here..."></textarea>
<br />
<input type="submit" value="submit" />
</form>
</body>
</html>
ตัวอย่างขั้นสูง
1. Textarea พร้อมนับตัวอักษร
<textarea id="message" name="message" rows="4" cols="50"
maxlength="200" placeholder="Max 200 characters"></textarea>
<div><span id="charCount">0</span>/200 characters</div>
<script>
document.getElementById('message').addEventListener('input', function() {
document.getElementById('charCount').textContent = this.value.length;
});
</script>
2. Textarea แบบ Read-only (แสดงผลอย่างเดียว)
<textarea rows="6" cols="60" readonly>
This content cannot be edited.
It's useful for displaying code snippets or terms.
</textarea>
3. การจัดสไตล์ด้วย CSS
textarea {
width: 100%;
min-height: 120px;
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-family: inherit;
font-size: 1rem;
line-height: 1.5;
resize: vertical; /* อนุญาต resize แนวตั้งอย่างเดียว */
box-sizing: border-box;
}
textarea:focus {
outline: none;
border-color: #007bff;
box-shadow: 0 0 0 3px rgba(0,123,255,0.15);
}
คำแนะนำ: cols/rows vs CSS
แอตทริบิวต์ cols และ rows เป็น จำเป็น ใน HTML แม้จะใช้ CSS กำหนดขนาดก็ตาม เพื่อให้ทำงานได้แม้ CSS ไม่โหลด ให้ใช้ CSS สำหรับขนาดจริง และ cols/rows เป็น fallback