function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
HayatarHayatar 

選択リスト値の初期表示について

inputfieldタグを使用して画面に選択リストを表示させると初期表示として「--なし--」と表示されるのですが、この初期表示を「○○を選択してください」などに変更することはできるのでしょうか? ご存知の方がおられましたらご教授のほどよろしくお願いいたします。
tajimatajima

<apex:inputField>ではこの部分をカスタマイズすることはできません。

どうしても、というのであれば<apex:selectList>を使って実装するしかありませんね。

HayatarHayatar

回答ありがとうございます。 おっしゃるとおりしかないですね。 を使用した実装しました。 そこで追加で以下2点に関してお聞きしたいことがございます。

 

①エラーメッセージの言語切り替えについて

②エラーメッセージの表示位置について

 

①エラーメッセージの言語切り替えについて

必須チェックを行うためrequiredタグで対応したのですが、エラーメッセージが英語表記になってしまします。 今回は国際化対応も兼ねているので、言語によって切り替えを行いたいです。 実装は以下のようになってます。(選択リストの部分のみ抜粋) リファレンスではlangタグに言語を指定することによってできると書いてあったのですが、実際はできませんでした。 lang="ja",lang="en"とすることで切り替わると思うのですが。 もしご存知でしたらご教授いただけないでしょうか?

 

 ②エラーメッセージの表示位置について

上記のようにrequiredを使用した場合は、必須チェックに引っ掛かると画面上部にエラーメッセージが表示されてしまい、選択リストの直下に表示されません。 エラーメッセージが画面上部に表示させず、選択リストの直下に表示させることはかのうなのでしょうか? 長文で申し訳ありませんがよろしくお願いいたします。

 

 

ソースは下記の通りです。

apex:selectList value="{!selectpick}"  multiselect="false" size="1" lang="jp" required="true"

tajimatajima

①エラーメッセージの言語切り替えについて

lang属性は、(文字化け対策t等のために)ブラウザ等にこの文字の言語を

自動判別させず明示的に伝えるためのものであり、表示言語を制御するためのものではありません。

 

②エラーメッセージの表示位置について

<apex:pageMessage>または<apex:message>を使います。

(Salesforce標準スタイルに準拠したLook&Feelで構築しているかどうかで使い分けてください)

これらは個別の要素に関連付いたメッセージを表示するためのコンポーネントで、

for="..."が必須です。ここに入力項目(ここではapex:selectList)のIdを指定します。

(なので、apex:selectListにもid属性が必要です)

 

 

しかし、required="true"属性でエラーとなった場合に表示されるメッセージをカスタマイズする方法は残念ながらありません。

Visualforce Controllerに入力チェック処理を自前で実装してしまうのがおすすめです。

 

 

HayatarHayatar
ご回答ありがとうございます。 Visualforce Controllerに入力チェック処理を自前で実装し、うまくいきそうです。 おかげさまで作業が進めることができました。 ありがとうございました。
HayatarHayatar
すいません。 追加で質問させてください。 InputFieldを使用した場合入力値のチェックを自動でやってくれますが、そのチェックに引っ掛かった際のエラーメッセージをカスタマイズすることも不可能でしょうか? というのも メールアドレスの入力チェックを行いたいのですが、InputFieldだと「エラー:メールアドレスが間違っています」というメッセージがでますがこれを「※メールアドレスが正しくありません」としたいです。 どうしても変えられなければ自前でメールアドレスのチェック処理を実装しようと思ってます。
tajimatajima

残念ながら、これもカスタマイズの手段はありません。

自前で実装になりますね・・・

HayatarHayatar
ようやく解決しました。 結局自前で実装することにしました。 ありがとうございました。