繁体   English   中英

输入类型编号的属性“min”工作错误

[英]Attribute 'min' of input type number works wrong

我有一个输入类型编号,其中包含atrributes min,max,step;

在文档https://developer.mozilla.org/ru/docs/Web/HTML/Element/Input/number中

接受此输入的最小值。 如果元素的值小于this,则元素将失败约束验证。 如果为min指定的值不是有效数字,则输入没有最小值。

该值必须小于或等于max属性的值。

但实际上似乎min属性也改变了我输入的基本值,总的来说用户输入的增量值是错误的。

你可以试试这个:

工作正常(没有min属性): https//jsfiddle.net/utqLrveh/7/

工作错误(使用min属性): https//jsfiddle.net/utqLrveh/6/

Javascript部分

var e=document.getElementById('basic');
e.setAttribute('value',16);
e.step=32;
e.max=59;

HTML部分(min属性错误)

<input id="basic" type="number" value="0" min="5">

(没有min属性,工作正常)

<input id="basic" type="number" value="0">

没有min,第一个用户增量返回48(值= 16 +步长= 32); 使用min,第一个用户增量返回37(̶v̶a̶l̶u̶e̶=̶1̶6̶min= 5 + step = 32);

这种行为(在我的理解中)的原因是,一旦你设置了min (例如5 ),未来的值(将在<input>递增/递减之后获得)将基于它而不管默认值如何value

换句话说,如果将value设置为16并且范围为[5,59]且步长为32,则<input>只能获取值,以便您可以在<input>获取任何值val现场,你就会有这样的: val = input.min + n * input.step其中n是从增量数input.min (即它可以取最小值)。

所以在你的情况下,你最终得到的值范围如下[5, 37] (因为69 = 5 + 3 * 32高于59 ,因此任何5 + 32 * n ,其中n >= 3 ) 。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM