做项目这么久,每次遇到要限制input框数据时,都是好一阵纠结,究竟在哪限制比较好?
情况1:输入数据的时候,不做限制,只有在点击确定的时候提醒用户
问题:交互感觉不好,可以随意输入,明明限制输入数字,效果如下:
情况2:和情况1差不多,但是在blur时候处理数据或提示用户
问题:如果点击确定才做验证,有可能先执行提交click事件再执行blur的情况
情况3:在输入的时候就做限制
问题:改变用户输入,光标有时不在用户原来输入的位置,而且触发时机要注意,是keyup?change?
个人感觉情况3的交互是最好的,而keyup一般情况下还可以,但是有种情况却会出现bug,如下图:
通过中文输入法,输入一段,然后用鼠标点击input以外的地方,使它失去了焦点。而刚刚所输入的内容就录入到输入框内。