- リンクを取得
- ×
- メール
- 他のアプリ
- リンクを取得
- ×
- メール
- 他のアプリ
Visualforceページで
を使用する際、二重クリックによる二重送信を防ぐ方法について解説します。以下の例では、JavaScriptを使用して、ボタンを最初のクリック後に無効化する実装を行います。
ソリューション: JavaScriptを用いたボタンの無効化
以下は、
で二重クリックを防ぐためのコード例です。
Visualforceページ
<apex:page> <script> function disableButton(button) { button.disabled = true; // ボタンを無効化 button.value = 'Processing...'; // ボタンの表示を変更 } </script> <apex:form> <apex:commandButton value="Submit" action="{!processAction}" onclick="disableButton(this);" rerender="none" /> </apex:form> </apex:page>
コードの説明
JavaScript関数
disableButton
disableButton
関数は、引数として渡されたボタン要素を無効化します。- ボタンの
disabled
属性をtrue
に設定し、表示メッセージを「Processing...」に変更します。
onclick
イベント- ボタンがクリックされた際に、
disableButton(this)
を呼び出します。 this
は現在クリックされたボタンを指します。
- ボタンがクリックされた際に、
rerender="none"
- 再描画を避けるために
rerender
属性をnone
に設定します。 - 再描画が必要な場合は、適切に調整してください。
- 再描画を避けるために
注意点
- ボタンの動作を確認する際、ブラウザキャッシュの影響を受ける場合があります。その場合はキャッシュをクリアしてください。
- 複数のボタンがある場合、無効化する対象を適切に指定する必要があります。
結論
この方法を使用することで、二重クリックによる誤動作やデータの重複送信を防ぐことができます。特に重要な処理を伴うボタンに適用することを推奨します。
コメント
コメントを投稿