The min attribute defines the minimum value that is acceptable and valid for the input containing the attribute. If the value of the element is less than this, the element fails constraint validation. This value must be less than or equal to the value of the max attribute. If a value is specified for min that isn't a valid number, the input has no minimum value.
Valid for the numeric input types, including the date, month, week, time, datetime-local, number and range types, and the <meter> element, the min attribute is a number that specifies the most negative value a form control to be considered valid.
Syntax
If any is not explicity set, valid values for the number, date/time input types, and range input types are equal to the basis for stepping - the min value and increments of the step value, up to the max value, if specified. For example, if we have <input type="number" min="10" step="2"> any even integer, 10 or great, is valid. If omitted, <input type="number">, any integer is valid, but floats, like 4.2, are not valid, as step defaults to 1. For 4.2 to be valid, step would have had to be set to any, 0.1, 0.2, or any the min value would have had to be a number ending in .2, such as <input type="number" min="-5.2">
| Input type | Example | Example |
|---|---|---|
| date | yyyy-mm-dd |
<input type="date" min="2019-12-25" step="1"> |
| month | yyyy-mm |
<input type="month" min="2019-12" step="12"> |
| week | yyyy-W## |
<input type="week" min="2019-W23" step=""> |
| time | hh:mm |
<input type="time" min="09:00" step="900"> |
| datetime-local | yyyy-mm-ddThh:mm |
<input type="datetime-local" min="2019-12-25T19:30"> |
| number | <number> | <input type="number" min="0" step="5" max="100"> |
| range | <number> | <input type="range" min="60" step="5" max="100"> |
Note: When the data entered by the user doesn't adhere to the min value set, the value is considered invalid in contraint validation and will match the :invalid pseudoclass
See Client-side validation and rangeUnderflow for more information.
For the <meter> element, the min attribute defines the lower numeric bound of the measured range. This must be less than the minimum value (max attribute), if specified. In both cases, if omitted, the value defaults to 1.
| Input type | Syntax | Example |
|---|---|---|
<meter> |
<number> | <meter id="fuel" min="0" max="100" low="33" high="66" optimum="80" value="40"> at 40/100</meter> |
Impact on step
The value of min and step define what are valid values, even if the step attribute is not included, as step defaults to 0.
We add a big red border around invalid inputs:
input:invalid {
border: solid red 3px;
}
Then define an input with a minimum value of 7.2, omitting the step attribute, wherein it defaults to 1.
<input id="myNumber" name="myNumber" type="number" min="7.2" value="8">
Because step defaults to 1, valid values include 7.2, 8.2, 9.2, and so on. The value 8 is not valid. As we included an invalid value, supporting browsers will show the value as invalid.
If not explicitly included, step defaults to 1 for number and range, and 1 unit type (second, week, month, day) for the date/time input types.
Browser compatibility
No compatibility data found. Please contribute data for "html.elements.attributes.min" (depth: 1) to the MDN compatibility data repository.
Specifications
| Specification | Status | Comment |
|---|---|---|
| HTML Living Standard The definition of 'min attribute' in that specification. |
Living Standard | |
| HTML5 The definition of 'min attribute' in that specification. |
Recommendation |
Accessibility concerns
Provide instructions to help users understand how to complete the form and use individual form controls. Indicate any required and optional input, data formats, and other relevant information. When using the min attribute, ensure this minimum requirement is understood by the user. Providing instructions within the <label> may be sufficient. If providing instructions outside of labels, which allows more flexible positioning and design, consider using aria-labelledby or aria-describedby.
See also
- step
- max
- constraint validation
Constraint_validationvalidityState.rangeUnderflow:out-of-range<input>- date, month, week, time, datetime-local, number and range types, and the
<meter>
