收藏
回答

input 可以在输入前加校验吗?

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

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

最后一次编辑于  2018-05-27  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

6 个回答

  • 李敏
    李敏
    04-16

    解题思路:

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


    解决方案:

    a, 判断是否有小数点;

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

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

    tips:记得要实时恢复manlength。


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

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


    04-16
    赞同 1
    回复
  • 大少
    大少
    2018-05-28

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

    2018-05-28
    赞同
    回复 1
    • You can you up
      You can you up
      2018-05-29

      无解  早就有的问题

      2018-05-29
      回复
  • 陈
    2018-05-28

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

    2018-05-28
    赞同
    回复
  • Amy
    Amy
    2018-05-28

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

    2018-05-28
    赞同
    回复
  • 罗宗辉
    罗宗辉
    2018-05-30

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

    2018-05-30
    赞同
    回复
  • cunjinli
    cunjinli
    2018-05-31

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

    2018-05-31
    赞同
    回复