だから私はYiiのモデルにこれらのルールを持っています:
array('svalue','numerical'),
これらは数値なので(後で計算に使用されます)、数値として保存したいと思います。
ただし、クライアントは、数値をコンマ「,」区切り文字 (1,200 = 千 200) でフォーマットするよう求めています。プロジェクトの前任者が使用した
$.fn.digits = function(){
return this.each(function(){
$(this).keyup(function(){
$(this).val( $(this).val().replace(/,/g,"").replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") );
});
})
}
また、キーダウン機能を追加して、数字以外の文字を入力できないようにしました。
残念なことに、jquery.digits() 関数は任意の数を千単位で正しくフォーマットしますが、yii は明らかにいくつかのコードを生成し、フォーム検証で「svalue は数値でなければなりません」と表示されます。
クライアントが望むようにフォーマットされた文字列を持ち、Yii バックエンドで数値チェックを行うには、どうすれば両方の機能を持たせることができますか?