• 活用ブログTOP
  • チェックボックスで選択できる上限数を指定する【MovableType.net フォーム】
saito saito

チェックボックスで選択できる上限数を指定する【MovableType.net フォーム】

はじめまして!デザイナーのさいとうです。
今回初めて活用ブログを書かせていただきます🙌

お問い合わせやアンケートのフォームで「該当する項目を、3つ選択してください」と、選択できる個数の上限を指定したい時、あると思います。

CMSサービス「MovableType.net」のフォーム機能ならびに、フォームサービス「MovableType.net フォーム」では、複数アイテムを選択できるチェックボックスを利用できます。

この記事では、そのチェックボックスで選択できるアイテムの最大数を指定するためのカスタマイズ方法についてご紹介します!

この方法を使えば、もしユーザーが上限数以上に選択したとしても、アラートのメッセージが表示されるので安心です😌

さっそくやっていきましょう✊


もくじ

  1. フォームを新規作成
  2. フォームをページに設置する
  3. カスタムスクリプトのテンプレートを作成
  4. カスタムスクリプトのテンプレートを読み込ませる
  5. 正常に動くか操作して確認する

1. フォームを新規作成

まずは、チェックボックスを含むフォームを新規作成しましょう。

MovableType.net 新規フォーム作成画面のスクリーンショット
MovableType.net 管理画面から、新規フォームを作成

必要項目を入力し、下部にある [保存] ボタンをクリックします。

今回はチェックボックスをカスタマイズしたいので、[項目変更] で [チェックボックス] の項目を必ず追加してください。

フォーム項目として [チェックボックス] 項目を追加

フォームの作成方法については、マニュアルで詳しく解説しているのでぜひ参考にしてください!

フォームが完成しても、設定ページは閉じずそのままにしておきましょう。この後、設定した内容をいくつか使用します。

2. フォームをページに設置する

次に、フォームを設置しましょう。フォームを置きたいページの編集画面を開きます。

今回は「ウェブページ」にアンケートを設置してみます。

先ほど作成したフォームの管理画面に戻り [基本設定] タブの中にある、埋め込みコードをコピーします。

[埋め込みコード] 内のコードをコピーします

アンケートを設置するウェブページに、コピーした埋め込みコードを貼り付けます。フォーマットは [なし] もしくは、ブロックエディタの [HTML] ブロックとして貼り付けてください。

ウェブページの編集画面で、埋め込みコードを貼り付ける

[公開] ボタンを押すと、作成したフォームがページに表示されます。実際のウェブページを確認しましょう。

アンケートフォームをページに埋め込んだ例

この時点では、「作品の良かった点」をいくらでも選択できる状態です。

3. カスタムスクリプトのテンプレートを作成

いよいよ本題のカスタマイズ設定を行ないます!作品の良かった点を 最大3つまで 指定できるように設定していきましょう。

フォーム用のカスタムスクリプトのテンプレートを作成します。ここでチェックボックスで選択できる数の制限指定や、アラートメッセージなどのバリデーションの設定を行ないます。

左サイドバーの [デザイン] > [テンプレート] から [インデックス・テンプレート] を新規作成して下記のコードを貼り付けます。

window.MTNetFormDataLayer = window.MTNetFormDataLayer || [];
function MTNetForm() { MTNetFormDataLayer.push(arguments); }
MTNetForm("validator", {
  id: "foo",
  validator: function(value) {
    if (value.length < 1) {
      return "1つ以上選択してください";
    }
    if (value.length > 3) {
      return "選択できる項目は最大3つまでです";
    }
  },
});

テンプレートの名前は フォーム選択数の上限指定、出力ファイルは form_multiple_selection_limiter.js などにしておきましょう

カスタムスクリプト用のテンプレートを作成

再度、先ほど作成したフォームの管理画面に戻り [項目変更] タブの中にある、チェックボックスの項目を開き [項目名] の内容をコピーします。

フォーム [項目変更] 画面のチェックボックスの [項目名] をコピー

フォーム用のカスタムスクリプトの4行目のidにある、fooをコピーした内容に書き換えます。
このスクリーンショットの例で言えば、id = 今回の作品でよかった点を選択してください(最大3つまで)になります。

9行目のif (value.length > 3)3を変更すると、選択できる上限数を設定できます。

コード10行目のreturnに書かれている選択できる項目は最大3つまでです3の部分も必ず同じ数字に変えてください。アラート時に表示されるメッセージになります。

id の値や選択上限数、アラートメッセージを書き換え

書き換えが完了したら [公開] または [更新] を押します。

4. カスタムスクリプトのテンプレートを読み込ませる

最後に、設定したバリデーションの設定を、作成したフォームに反映させる作業を行います。

フォームを設置したページのテンプレートを開きます。

今回はウェブページに設置したので、ウェブページのアーカイブ・テンプレートを開きます。

<head> 内に、下記のコードを貼り付けます。

<script src="<mt:BlogURL>form_multiple_selection_limiter.js" defer></script>
ウェブページのテンプレートに、今回作ったカスタムスクリプトのjsを埋め込む

form_multiple_selection_limiter.jsと書かれている箇所は、カスタムスクリプトのテンプレートで設定した [出力ファイル] 名を記載してください。

このコードを埋め込むことで、カスタムスクリプトのテンプレートの内容とフォームを紐づけることができます。

貼り付けが完了したら、[更新] を押します。

これで、チェックボックスで選択できる項目の数が制限されているはずです!

5. 正常に動くか動作確認する

さっそくウェブページを更新し、動作確認してみましょう!

指定した数より多く選択して送信すると、アラートメッセージが表示され、送信できない状態になればカスタマイズ成功です!

4項目チェックして送信したら「最大3つまで」のアラートが表示されました

この方法でフォームのチェックボックスの選択数に上限を設けることができます。ぜひお試し下さい!