[ExtJs]Numberfield 留下的小坑

在使用numberfield 控件時,若是沒有對格式進行限制,例如最小值 minValue:0

輸入小數點後 控件會默認處理爲 保留兩位小數。

其中 主要配置項是 decimals 默認值爲2

一般來說沒啥問題,但是在使用失焦即保存寫入 就會出現問題

例如:

控件上輸入 0.336666 

若是用失焦事件 獲取到的值是0.336666,而失焦事件後 可以看到 控件裏的值變爲了0.34

原因:

applyValue的方法 優先於 applyInputValue

造成了在失焦事件blur 取值時 applyValue獲取到的是真實值,而 applyInputValue 裏 會進行數位格式化如下

其中 numberFormat變量來源於 控件 的decimals

解決方法:

在你的保存方法裏,可以先檢查下格式

Ext.util.Format.number(value, '0.'+ Ext.String.repeat('0', field.getDecimals()));

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章