如何将值设置为小于 min 或大于 max 的输入?

Posted

技术标签:

【中文标题】如何将值设置为小于 min 或大于 max 的输入?【英文标题】:How to set a value to an input that is smaller than min or larger than max? 【发布时间】:2021-07-20 06:48:55 【问题描述】:

编辑:问题只是我试图放入输入中的一些数据格式不正确。查看接受的答案以了解更多信息。

我正在使用 type="datetime-local" 的输入字段。我还为所述输入设置了最小值和最大值。我仍然想通过打破这些约束的 javascript 向它添加值,小于最小日期或大于最大日期。但是,当前仅设置值(在本例中为小于 min 的值)会导致输入的时间部分变为空白,如下所示:

datetimeInput = document.createElement('input');
datetimeInput.setAttribute('type','datetime-local');
datetimeInput.setAttribute('step','1');
datetimeInput.setAttribute('min', minTime);
datetimeInput.setAttribute('max', maxTime);

if (data) 
  datetimeInput.value = data.time;

【问题讨论】:

minTimemaxTimedata.time 的值是多少?它们的格式必须为yyyy-mm-ddThh:mm 如果我使用正确的格式,它可以工作:jsfiddle.net/barmar/6753qts8/6 【参考方案1】:

每个国家或地区都有自己的日期时间格式。我所在地区datetime-local类型<input>标签的默认值格式为:

YYYY-MM-DDTHH:MM

如果我要将 <input> 元素的值设置为以下值:

datetimeInput.value = "2017-12-31T00:00";

这将导致值被分配,input 标记现在将显示通过 javascript 分配的日期时间值。

在下面的 sn-p 中看到这个工作。然后,您可以使用您所在地区的默认格式来设置值:

datetimeInput = document.createElement('input');
datetimeInput.setAttribute('type', 'datetime-local');
datetimeInput.setAttribute('step', '1');
datetimeInput.setAttribute('min', "2018-06-07T00:00");
datetimeInput.setAttribute('max', "2018-06-14T00:00");

datetimeInput.value = "2017-12-31T00:00";

document.getElementById("main").appendChild(datetimeInput);
<div id="main"></div>

【讨论】:

以上是关于如何将值设置为小于 min 或大于 max 的输入?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL:WHERE 值大于 Min 且小于 Max

在基于小数的输入字段上设置小于数字的最大值

(字符串) leetcode

labview中如何大于0小于4

顺序表——删除设定的MIN,MAX之间的数据

如果小于 Max,则通过消除最少用户将值除以其他值