报告,文本编辑器EditBox,无法正确限定输入字符

版本3.1.1
如图


在我的理解,这两者都应该: 无法输入小数点
且电话号码还应该无法输入负号
但是现在选择这两种模式,依旧可以输入小数点和负号.

注: 关于电话号码的模式,可以先输入一个数,再把光标移动到最前面,然后可以输入负号…

自己动手,丰衣足食,自己限定最靠谱

我是监听了文本改变事件,然后搞限定,也不是很麻烦
这里就随手提一下,希望新版本可以越来越好

差点裂开,本以为监听一下文本改变时间,然后每次文本变化的时候去做判定即可,如果出现了小数点或者负号等不需要的字,直接去掉再重新赋值给Label就行了,但是惊喜的是,此Label非彼Label,当你进入编辑的时候,出来的这个编辑框并不是你自己的Label了,而是web上的文本输入框

所以想要实时判断文本并矫正需要用这段代码

EditBox._impl["_edTxt"].value = value.toString();

本以为监听了文本,实时矫正,应该解决了所有问题

但是输入框的模式如果选择这两个
image
监听到的值会有所变化,比如输入"1.",会被过滤成"1",监听到的值也就是"1"
源码如下


吼吼,所以输入框的模式我最终还是设置成最后一个(当行文本框)

    /**
     * 检查非负整数
     */
    private checkNumber(str: string): boolean
    {
        if (null == str)
            return false;
        let reg = /^[1-9][0-9]*$/;
        return reg.test(str);
    }

附上这段代码,这个功能告一段落