input 可以在输入前加校验吗?
发布于 6 年前 作者 jiecai 1670 次浏览 来自 问答

我要限制金额只能到小数点后两位,当我输入第三位之前能不能先判断。

原来的判断方法是,取到值之后再判断小数点后面的位数,大于2位就截取两位,在setData。但是这样输入的第三位数字会先闪一下。

6 回复

可以解决,让前端的给input加点样式,但是我不会

可以设置maxlength属性来限制输入长度

解题思路:

1,有一个属性,可以控制输入框的输入长度:maxlength;2,把关注点放到输入完小数点后的第二位,而不是第三位。

解决方案:

a, 判断是否有小数点;

b,小数点后是不是已经出现了两位小数,就是比较字符串的长度和indexOf(".")+3是不是相等;

c, 如果相等,设置该输入框的maxlength为字符串的长度。

tips:记得要实时恢复manlength。

其实这个解决方案最主要就是依靠动态控制maxlength的值,来实现不能继续输入的效果。

不能继续输入,但是input又没有失焦,也没有disabled掉。

没有在输入前先判断这种说法的,因为你根本不知道他会输入什么,所以应该是输入后进行判断,你的问题应该是怎么样让setData赋值时不会闪

可以自己写个键盘,自己控制输入数字的点击事件

你好,请教你一个问题,请问你的input在获得焦点时会不会闪一下呀(如位置会轻微上下移动,placeholder的内容有时会消失)?有没有什么解决办法?谢谢!

回到顶部