动态格式化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'}
函数。问题是
放置
约束
不能同时工作。