我期望
min
和 max
为 <input>
将可选选项限制在两个值之间的范围。例如,他们在 <input type="number">
中这样做。但对于 type="datetime-local"
他们却没有。据我所知,他们实际上并没有做太多任何事情?
<label for="select_start">Without min/max</label>
<input type="datetime-local" id="select_start">
<label for="select_end">With min/max</label>
<input type="datetime-local" id="select_end" min="2023/5/9" max="2023/6/8">
据我所知,两者完全相同(2023 年在 Google Chrome 上查看它们)。
Do
min
和 max
实际上做了什么吗?我可以做什么来将可选选项限制在所需的范围内?
您的理解正确,您可以使用
min
和 max
属性缩小输入值的范围。您刚刚提供的日期格式错误。由于您创建了“datetime-local”类型的输入字段,因此最小值和最大值需要采用标准 ISO 8601 格式:yyyy-mm-ddThh:mm
,例如 1970-01-01T23:59
。
// Just show value of range
const value = document.querySelector("#rangeValue")
const input = document.querySelector("#rangeInput")
value.textContent = input. Value
input.addEventListener("input", (event) => {
value.textContent = event.target.value
})
div {
margin: 5px;
}
<form>
<div>
<label for="number">number</label>
<input type="number" name="" min="1000" max="2000">
</div>
<div>
<label for="range">range</label>
<input type="range" name="range" id="rangeInput" min="-4" max="10" step="2">
<output id="rangeValue"></output>
</div>
<div>
<label for="date">date</label>
<input type="date" name="date" min="2023-05-09" max="2023-06-08">
</div>
<div>
<label for="time">time</label>
<input type="time" name="time" min="12:00" max="14:00">
</div>
<div>
<label for="datetime-local">datetime-local</label>
<input type="datetime-local" name="datetime-local" min="2023-05-09T00:00" max="2023-06-08T00:00">
</div>
<div>
<label for="week">week</label>
<input type="week" name="week" min="2023-W12" max="2023-W14">
</div>
<input style="display: none;" name="disable-form" required>
<button type="submit">Test</button>
</form>
min 和 max 属性不适用于日期时间本地输入类型。这些通常与日期或数字输入一起使用。 使用日期时间本地类型将可选选项限制在一定范围内需要在 JavaScript 中使用自定义验证方法。