ContactForm7 HTML&CSS WORDPRESS

【contactform7】送信ボタンを送信後にテキストを変える

WordPressでよく使われる Contact Form 7(CF7)
フォーム送信後に「送信ボタンの文字を変更したい」と思ったことはありませんか?

例えば、送信後に「RECEIVED」と表示させれば、ユーザーに送信完了を分かりやすく伝えられます。
この記事では 送信成功時にボタンのテキストを変える方法 を解説します。

送信成功時にボタンのテキストを変える方法

全てのフォーム共通です。

document.addEventListener('wpcf7submit', function(event) {

  // 送信成功のときだけ処理
  if (event.detail.status !== 'mail_sent') return;

  // このフォーム内の送信ボタンを取得
  const wrapper = event.target.closest('.wpcf7');
  const btn = wrapper.querySelector('input[type="submit"]');

  if (btn) {
    btn.value = 'RECEIVED';  // ボタンテキストを変更
    btn.disabled = true;      // 二重送信防止のため無効化
  }

}, false);

特定のフォームだけ、送信成功時にボタンのテキストを変える方法

お問い合わせフォームや資料請求、採用フォームなどフォームが複数ある場合はこちら

document.addEventListener('wpcf7submit', function(event) {

  // 成功した場合のみ実行
  if (event.detail.status !== 'mail_sent') return;

  const wrapper = event.target.closest('.wpcf7');

  // 対象フォームIDだけ
  if (wrapper && wrapper.id === 'wpcf7-f11550-p11548-o1') {
    const btn = wrapper.querySelector('#formbtn');

    if (btn) {
      btn.value = 'RECEIVED';
      btn.disabled = true; // 任意でボタンを無効化
    }
  }

}, false);

ContactForm7では送信完了のタイミングでイベントが発火します。

wpcf7submit送信ボタンが押されたとき(成功・失敗すべて)

event.detail.status で状態を判定できます:

mail_sent → 送信成功 ✅

validation_failed → 必須未入力 ❌

mail_failed → 送信失敗 ❌

spam → スパム判定 ❌

  • 特定のフォームだけ反映
    → 複数フォームがある場合でも安心です。
  • 送信成功時のみ変更
    → 未入力やエラーのときはボタンは変わりません。
  • ボタン無効化も可能
    → 二重送信を防止できます。

-ContactForm7, HTML&CSS, WORDPRESS