Visualforceページの開発中、数値の入力欄を空欄のままsubmitボタンを押したところ、
空欄で更新されるはずが0が入力されてしまいました。
必須項目で、「0」は許す仕様なんですが、何も入力しなくても「0」が入ってきてしまいエラーになりません。
クラスやトリガの処理を疑ったものの、「0」を代入するような処理はありませんでした。。。
別の画面で同じ操作をしたところ、空欄で更新することができたので、この画面の実装に問題があるっぽい。
空欄で更新できた画面と「0」が代入されてしまう画面のソースを見比べたところ、
空欄で更新できる画面はinputField、「0」が代入される画面はinputTextで作られていました。
inputTextのvalueに数値型の項目を設定していたのが原因だったようです。
inputFieldで作成すると、標準の入力チェックが走ってしまうため、inputTextで実装していたのですが、
空欄を「0」とされては困るので、結局、inputFieldに直しました。。。
標準の入力チェックをさせない、かつ空欄で更新できるようにするには、inputTextのvalueには文字列型の変数を設定し、
クラス側で、空欄かどうかをチェックし、数値型に変換して項目に値をセットするようなロジックを書かなきゃいけない・・?
その他のSalesforce記事