【Salesforce】apex:inputFieldの必須チェック回避【Visualforce】

<apex:inputField>はsObject型で使用できる非常に便利なインプットタグです。

項目の設定を意識せず使用することができます。

項目に必須が設定してある場合、登録処理などの前に必須チェックが掛かります。

 

登録処理であれば、このまま使用することでValidateの役割を果たしてくれますが

削除やキャンセルなどの処理が走る場合には厄介です。

 

削除やキャンセルの場合には、必須チェックを掛ける必要がありませんし

チェック回避のためにわざわざ入力させてから削除するのでは意味がありません。

 

そんな場合にこの必須チェックを回避する方法があります。

方法は簡単です。以下のように設定するだけです。

<apex:inputField immediate="true">

 

これだけで必須チェックを回避できます。

 

ただし、1点重要な問題があります。

このimmediateを設定すると、入力値がApexクラスに渡りません。

登録処理と削除/キャンセル処理を一緒にやろうとすると登録処理時に弊害が出てしまいます。