javascript - HTML 如何阻止用户输入大于 2100-01-01 的日期?
问题描述
我有以下输入字段:
<input type="date" min="2020-11-04" max="2100-01-01"/>
这可以很好地限制日期选择2020-11-04
器2100-01-01
中的日期。但是,用户仍然可以通过在输入字段中输入min
来输入大于或小于指定日期的日期。max
有没有办法可以防止这个客户端使用 HTML 和/或 JavaScript,所以用户不能输入大于或小于指定的日期min
和max
?我想保留附带的日期选择器<input type="date">
,所以我不确定使用正则表达式模式是否是解决此问题的正确方法。
解决方案
您可以“阻止”输入字段中的 keydown 事件。这将迫使用户使用日期选择器。
在这里,我向输入添加了一个类,并querySelectorAll
在您有多个要影响的字段时使用。
虽然我非常同意@gavgriff 关于验证字段的建议......你的问题是“如何阻止用户输入”;)
document.querySelectorAll(".noTyping").forEach(el=>{
el.addEventListener("keydown", function(e){
e.preventDefault()
})
})
<input class="noTyping" type="date" min="2020-11-04" max="2100-01-01"/>
推荐阅读
- python - 如何让“python -i”读取 PYTHONSTARTUP 文件?
- javascript - 使用JS提交时防止多个表单提交
- python - 使用 Python 将颜色添加到索引 PNG 图像
- haskell - 给定一个函数记录,以及函数作用的类型的数据记录,如何通用地应用函数记录?
- python - 在运行时使用 keras 从自动编码器模型中保存隐藏层的特征
- tesseract - Tesseract 新字体训练失败
- python - 带有图形安装程序的 anaconda 文件夹的路径
- vuejs2 - 将插槽传递给插槽
- angular - Angular 4:对 XMLHttpRequest 的访问已被 CORS 策略阻止
- javascript - AJAX PHP 图片上传不起作用,$_FILES 为空?