2014-04-04 73 views
0

我想根據模式即時格式化任何類型TextBox的值。基本上,我的意思是,當用戶輸入'123',我的模式是'0.00'時,它必須直接轉換爲「1.23」。我知道我可以使用onChange函數來做到這一點,但我想現在已經有一個基於Dojo的解決方案(不是一個TextBox的onChange)。有人能告訴我我必須使用哪個屬性嗎?正在格式化Dojo文本框

我試過使用constraintsfilter,但兩者都只在模糊事件發生後才起作用。

回答

0

小部件自己觸發模擬DOM元素事件的事件。例如,文本框dijit將觸發名爲「change」的對象上的更改事件。

還有一個名爲「格式」的替換函數,顧名思義,它格式化文本框的值。

看到:http://dojotoolkit.org/api/?qs=1.9/dijit/form/_TextBoxMixin

因此,你可以這樣做:

widget.format = function(value, constraints){ //my formatting fnc} 

widget.on('change', function(){ 
    widget.format(); 
}); 
+0

我知道有一個格式的功能,但模糊後,這隻火災。我知道我可以使用on('change',function(){})'但我希望有更好的方法來解決這個問題。目前我正在嘗試使用'pattern'(正則表達式),但問題是我只能設置一個像'\ d {1,3},?\ d {0,2}'這樣的模式。這給了我預期的結果(?? d,??),但是當用戶沒有設置小數時,文本框必須自動添加'00'。像'constraints:{places:'2'}'函數一樣。問題在於'places'和'constraints'不能同時工作。 – GuyT