input[max={{number}}] 发出非常奇怪的行为

input[max={{number}}] issue very odd behaviour

本文关键字:非常 max number input      更新时间:2023-09-26

我花了太多时间来解决这个问题,我仍然不太确定该怎么做。

问题:

我有一个输入标签<input type="number" max="{{ theMax }}">,其中包含应在模板加载时设置的动态最大值。

当您单击输入框中的向上/向下小箭头图标时,max 标签将阻止您超过该数字,但如果您键入它,则不会。


在我的本地,如果我输入的数字高于最大值,我仍然能够从输入中读取该值。

然而,在我的服务器上(具有完全相同的代码库),当我在值上方输入内容并查询它的输入时,它会给我未定义。


这两种行为都是有意义的(我不确定 max 属性的实际规范应该是什么),让我感到困惑的是不一致的奇怪之处(相同的浏览器和所有内容)。

起初我认为这是某种竞争条件,也许是因为{{ theMax }}是动态设置的,也许实时代码在获取它或其他东西时速度较慢,但事实是它仍然识别最大值,因为输入值仅在您放置高于最大值的内容时才返回未定义。

什么可以解释这种不一致?我的代码的其余部分是否有明显的东西或某些东西会产生这种效果?

注意:是的,两个测试都使用了相同的浏览器。

谢谢

我不建议使用动态最大值,因为ng-max不会在链接(或编译)函数之后监视值的变化。

如果您需要使用动态最大值,这篇文章可以为您提供帮助。