tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:JavaScriptとreRenderの話

Visualforceページを開発するとき、画面を再描画してくれるreRender属性はとても便利な機能ですが、JavaScriptと一緒に使用するときには注意が必要です。


例えば、apex:inputTextを表示専用にしたい場合、JavaScriptで次のように処理することで対応可能です。

f:id:tyoshikawa1106:20150301180755p:plain


ところがreRenderで再描画した際にこのJS処理が再描画の範囲外にあると処理が実行されずに、readOnlyが解除されてしまいます。

f:id:tyoshikawa1106:20150301180927p:plain


この問題はscriptタグをreRenderの範囲内に設置することで回避できます。

f:id:tyoshikawa1106:20150301181222p:plain


JavaScriptの処理によってはreRenderの範囲内に入れない方がいいケースもあるので状況に応じて使い分けが必要になります。

サンプルコード