动态格式化Dojo文本框
我想根据模式动态格式化任何类型文本框的值。因此,基本上我的意思是,当用户键入动态格式化Dojo文本框,dojo,Dojo,我想根据模式动态格式化任何类型文本框的值。因此,基本上我的意思是,当用户键入'123'并且我的模式是'0.00'时,它必须直接转换为'1.23'。我知道我可以用onChange函数实现这一点,但我想已经有了基于Dojo的解决方案(而不是文本框的onChange)。有人能告诉我该用哪种财产吗 我曾尝试使用约束和过滤器,但这两种约束都只在模糊事件之后才起作用。小部件在自身上触发事件,模拟其DOM元素的事件。例如,文本框dijit将在名为“change”的对象上触发一个更改事件 还有一个名为“form
'123'
并且我的模式是'0.00'
时,它必须直接转换为'1.23'。我知道我可以用onChange
函数实现这一点,但我想已经有了基于Dojo的解决方案(而不是文本框的onChange
)。有人能告诉我该用哪种财产吗
我曾尝试使用
约束
和过滤器
,但这两种约束都只在模糊事件之后才起作用。小部件在自身上触发事件,模拟其DOM元素的事件。例如,文本框dijit将在名为“change”的对象上触发一个更改事件
还有一个名为“format”的可替换函数,顾名思义,它可以格式化文本框的值
见:
因此,您可以:
widget.format = function(value, constraints){ //my formatting fnc}
widget.on('change', function(){
widget.format();
});
我知道有一个格式化函数,但这只会在模糊后触发。我知道我可以在('change',function(){})上使用
,但我希望有一种更优雅的方法来解决这个问题。目前我正在尝试使用模式
(regex),但问题是我只能设置一个类似\d{1,3}、\d{0,2}
的模式。这给了我预期的结果(?d,?),但当用户没有设置小数时,文本框必须自动添加“00”。与约束类似:{places:'2'}
函数。问题是放置
和约束
不能同时工作。