Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> HTML

แอตทริบิวต์ max: กำหนดค่าสูงสุดสำหรับ Input Number/Date/Range

แอตทริบิวต์ max ใช้กำหนด ค่าสูงสุด (Maximum Value) ที่อนุญาตให้ป้อนได้ใน Input ประเภทตัวเลข/วันที่/เวลา/Range ทำงานร่วมกับ min และ step

ตัวอย่างการใช้งาน

<!DOCTYPE html>
<html>
<body>
    <form action="">
        <label>อันดับ (1-10): <input type="number" name="rank" min="1" max="10"></label><br><br>
        <label>วันเกิด (ไม่เกินวันนี้): <input type="date" name="dob" max="2024-12-31"></label><br><br>
        <label>ระดับเสียง (0-100): <input type="range" name="volume" min="0" max="100" value="50"></label><br><br>
        <input type="submit" value="ส่ง">
    </form>
</body>
</html>

Input Types ที่รองรับ max

Type รูปแบบ max ตัวอย่าง
number ตัวเลข max="100"
range ตัวเลข max="100"
date YYYY-MM-DD max="2024-12-31"
month YYYY-MM max="2024-12"
week YYYY-Www max="2024-W52"
time HH:MM max="23:59"
datetime-local YYYY-MM-DDTHH:MM max="2024-12-31T23:59"

Dynamic Max (JavaScript)

<input type="date" id="dob" name="dob">
<script>
    // ตั้งค่า max = วันนี้ (ไม่ให้เลือกอนาคต)
    const today = new Date().toISOString().split('T')[0];
    document.getElementById('dob').max = today;
</script>

Validation & Constraint API

  • Browser ป้องกันการกรอกเกิน max (Number Spinner, Date Picker)
  • ตอน Submit: ตรวจสอบ validity.rangeOverflow (true = เกิน max)
  • CSS: input:invalid { border-color: red; } / input:in-range { border-color: green; }

max + min + step (Validation Logic)

<input type="number" min="0" max="100" step="5" value="50">
<!-- ค่าที่ถูกต้อง: 0, 5, 10, 15... 100 -->
<!-- ค่าที่ผิด: 3, 57, 101, -5 -->

หมายเหตุ: max สำหรับ type="number" ควบคุม Spinner UI แต่ไม่บล็อกการพิมพ์ตัวเลขโดยตรง (ต้อง Validate เอง)