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

时间:2015-03-12 03:03:51

标签: javascript html angularjs

我沉迷了太多时间来解决这个问题,而且我还不太清楚该怎么做。

问题:

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

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


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

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


这两种行为都有意义(我不确定使用max属性的实际规范是什么)它是令我困惑的不一致的奇怪(相同的浏览器和所有内容)。

起初我认为这是某种竞争条件,也许是因为{{ theMax }}是动态设置的,实际代码在获取它时可能较慢,但事实是它仍然可以识别最大值value,因为如果你输入的值高于最大值,则输入值只返回undefined。

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

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

由于

1 个答案:

答案 0 :(得分:0)

我不建议使用动态最大值,因为ng-max在链接(或编译)函数后没有观察到值的变化。

如果您需要使用动态最大值,this post可以帮助您。