一行テキストフィールドにリアルタイムのキーワードブロックリストを追加する

ユーザーがフォームを送信する前に、一行テキストフィールドで特定の単語をブロックしますか?デフォルトでは、WPFormsのスパム保護はフォーム送信時に実行されます。簡単なJavaScriptスニペットを使用すると、制限された単語が入力されるとすぐにエラーメッセージを表示する、リアルタイムのキーワードブロックリストを追加できます。

このチュートリアルでは、wpforms_wp_footer_endとjQuery Validateを使用して、入力マスクと同様に機能するクライアントサイドのキーワード検証を追加する方法を説明します。


フォームの作成

まず、フォームを作成し、キーワードブロックリストで保護したい一行テキストフィールドを追加します。フォームに必要なその他のフィールドを追加することもできます。

この手順でヘルプが必要な場合は、WPFormsで最初のフォームを作成する方法に関するガイドを参照してください。

注意点:

  • フォームID
  • 検証したい一行テキストフィールドのフィールドID

以下のスニペットを設定する際にこれらの値が必要になります。

コードスニペットの追加

リアルタイムのキーワードブロックリストを追加するには、次のスニペットを使用します。この例では、wpforms_wp_footer_endアクションを使用して、サイトフッターに小さなJavaScriptブロックを印刷します。

カスタムコードの追加でヘルプが必要な場合は、WPFormsにカスタムPHPまたはJavaScriptを追加する方法に関するチュートリアルを参照してください。

このコードを追加して保存したら、フロントエンドでフォームが表示されているページにアクセスし、ブロックされている単語のいずれかを入力して一行テキストフィールドをテストしてください。

フォームを送信する必要なく、制限されたキーワードが検出されるとすぐに、フィールドの下に赤い検証メッセージが表示されるはずです。

スニペットのカスタマイズ

この例をフォームに適用するには、スクリプトの上部にある設定セクションを、スクリーンショットの行番号を使用して編集してください。

  • フォームID
    14行目
    var targetFormID = 100; // フォームIDに置き換えてください
    100を、一行テキストフィールドが含まれるフォームのIDに置き換えてください。
  • フィールドID
    15行目
    var targetFieldID = 1; // フィールドIDに置き換えてください
    1を、キーワードブロックリストを使用する必要がある一行テキストフィールドのIDに置き換えてください。
  • ブロックするキーワード
    16行目
    var blockedWords = ['badword', 'spam', 'unwanted']; // ブロックするキーワードのリスト
    例の単語を、ブロックしたいキーワードのリストに置き換えてください。必要に応じて配列に項目を追加または削除できます。
  • エラーメッセージ
    17行目
    var customError = 'このコンテンツには制限されたキーワードが含まれています。';
    制限されたキーワードが検出されたときにフィールドの下に表示されるメッセージを変更するには、引用符内のテキストを更新してください。

よくある質問

以下に、このカスタムキーワードフィルターの使用に関するよくある質問とその回答をいくつか紹介します。

これは、スパム保護とセキュリティの組み込みキーワードフィルターとどう違いますか?

組み込みのキーワードフィルターは、設定 » スパム保護とセキュリティの下で構成され、フォームが送信されたときにサイト上のすべてのフォームとフィールドに適用されます。このスニペットは、1つのフォームの特定の1つのテキストフィールドのみを対象とし、ユーザーが入力中にエラーメッセージを即座に表示します。

標準のキーワードフィルターは、すべてのフォームで禁止語をブロックする主な方法であり、JavaScriptが無効になっていても、送信時に実行されます。

このスニペットは、即時のフィードバックが必要な重要なフィールドの追加のリアルタイムチェックとして使用するのが最適です。

詳細については、スパムフィルターに関するドキュメントをご覧ください。

これで、カスタムJavaScript検証ルールを使用して、テキストフィールドにリアルタイムキーワードブロックリストを追加する方法を学びました。

フォームフィールドに基づいて、フォームの送信ボタンを条件付きで表示または非表示にしたいですか?送信ボタンを条件付きで表示する方法のチュートリアルをご覧ください。

参照アクション

wpforms_wp_footer_end