คุณสมบัติ multipleของ <select> คืนค่าและกำหนดว่าผู้ใช้สามารถเลือกหลายตัวเลือกพร้อมกันได้หรือไม่ (โดยถือ Ctrl/Cmd + คลิก หรือ Shift + คลิก)
รูปแบบ (Syntax)
อ่านค่า:
object.multiple
กำหนดค่า:
object.multiple = true | false
ตัวอย่างการใช้งาน
เปิดใช้งานการเลือกหลายรายการ:
<!DOCTYPE html>
<html>
<head>
<style>
body { text-align: center; color: #fff; background: linear-gradient(62deg, #FBAB7E 0%, #F7CE68 100%) center/cover no-repeat; height: 100vh; }
p { font-weight: 700; font-size: 1.2rem; }
.drop-down { width: 50%; border: 2px solid #fff; font-weight: bold; padding: 8px; background-color: #ffffff24; }
.btn { background: #0197F6; border: none; height: 2rem; border-radius: 2px; width: 45%; margin: 2rem auto; display: block; color: #fff; outline: none; cursor: pointer; }
.show { font-size: 1.1rem; font-weight: bold; }
</style>
</head>
<body>
<h1>ตัวอย่าง Select multiple Property</h1>
<p>สวัสดี เลือกวิชาที่ชอบ:</p>
<select class='drop-down'>
<option>Physics</option>
<option>Maths</option>
<option>Chemistry</option>
<option>English</option>
</select>
<button onclick="enableMultiple()" class="btn">เปิดใช้งานเลือกหลายรายการ</button>
<div class="show"></div>
<script>
function enableMultiple() {
var dropDown = document.querySelector(".drop-down");
var showMsg = document.querySelector(".show");
dropDown.multiple = true;
showMsg.innerHTML = "ตอนนี้เลือกหลายรายการได้แล้ว (ถือ Ctrl/Shift + คลิก)";
}
</script>
</body>
</html>
การเข้าถึงค่าที่เลือกหลายรายการ
var select = document.querySelector("select");
var selectedValues = Array.from(select.selectedOptions).map(function(opt) {
return opt.value;
});
console.log(selectedValues); // ["Physics", "Maths"]
การส่งข้อมูลไปเซิร์ฟเวอร์
- PHP:
$_POST['subject']จะเป็น array - Node.js:
req.body.subjectจะเป็น array - HTML: ต้องตั้ง name เป็น
name="subject[]"สำหรับ PHP (บาง framework จัดการอัตโนมัติ)
คำแนะนำ UX
- ควรแจ้งผู้ใช้ว่าสามารถเลือกหลายรายการได้ (เพิ่มข้อความ hint)
- พิจารณาใช้ checkbox group แทน หากตัวเลือกน้อยกว่า 7-8 รายการ
- select multiple ยากต่อการใช้งานบน mobile