記事の内容やaishipシリーズに関するお問い合わせはこちらから

0120-173-163 お電話

[電話受付時間]平日9:30〜19:00

TOP

CATEGORY

SERVICE

テキスト入力・メニュー選択どちらもできるdatalist要素を使ったフォームの作り方

テキスト入力・メニュー選択どちらもできるdatalist要素を使ったフォームの作り方

datalist要素を使ったフォームの作り方

今回はHTML5に新しく加わったdatalist要素を使ったフォームの作り方を紹介します。datalist要素とはinput要素にサジェスト機能を追加する要素です。

フォームを作成するとなると<input type=”text”>や<select>を使うことが多いですが、datalist要素を使うことで、これら両方の入力形式を一つのフォームで併せて実現することができます。

datalist要素を使ったフォームの実装デモ

次のフォームにテキスト入力もしくはダブルクリックしてメニューを選択してください。

好きな拳法:

ダブルクリックすると選択肢に

  • 北斗神拳
  • 南斗聖拳
  • 南斗水鳥拳

と表示されます。これら選択肢のいずれかを選ぶとフォームに選択肢のテキストが入力されます。テキストはもちろん後で修正できます。

※safariやIE9以下といったdatalist要素に未対応のブラウザの場合、選択肢が表示されません。chromeでご確認ください。

datalist要素を使ったHTMLの記述の仕方

では実際にdatalist要素を使ったフォームを実装してみます。実装のHTMLはこちら。

<form action="#">
好きな拳法:<input type="text" name="a" list="kenpo" placeholder="テキスト入力もしくはダブルクリック" autocomplete="off">
  <datalist id="kenpo">
    <option value="北斗神拳">
   <option value="南斗聖拳">
   <option value="南斗水鳥拳">
  </datalist>
</form>

datalist要素の中に入れたoption要素が入力候補となる選択肢となります。input要素とdatalist要素を関連づけるにはdatalist要素のid属性とinput要素のlist属性に同じ値を指定します。

input要素の直下にdatalist要素がある必要はなくdatalist要素と要素の内容はフッターにまとめて記述しておくといった使い方もできます。

input要素にlistタグがない場合の対応方法

CRMやカートシステム等でdatalist要素を使いたい時に、datalist要素とその内容は追加で記述することはできるけど、関連付けするためのinput要素に対してlist属性をうまく挿入することができないといった場合があります。
 
こういった場合は次のようにJavascriptを使ってinput要素にlist属性と値を追加することで解決しましょう。

<script>
$( function() {
//inputタグにlist属性とその値"keyword"を設定する
    $( 'input[name="name"]' ).attr('list', 'keyword');
  } );
</script>

終わりに

datalist要素はフォームに自由入力もできるけど、頻繁に入力されるであろうワードがいくつか想定される際、選択肢から選ばせるようにしてユーザーの入力効率をよくしたいといった場合に利用するとよいでしょう。

現時点では未対応のブラウザがあるので使いづらい点もあるかもしれませんが試しに使ってみるのも良いかと思います。

                   
クラウドECのサイト構築はaishipR-カスタマイズ可能なASP実績No.1

累計2000社以上の導入の総合通販型カートシステムで、カスタマイズ性が高く、デザインの自由度はもちろん、各種システムとの連携や機能追加等も独自のカスタマイズができるため、こだわりのある本格的な通販を月額9,800円から実現できます。 またモバイルファースト設計や月2回の無償バージョンアップなどの特徴があり、使いやすさと最新性を追求した通販サイトを構築できます。 さらに信頼性の高いサーバーを採用しており大規模アクセスにも対応できるため、これからさらに通販での売上を伸ばされたい事業者様におすすめです。
         

おすすめカテゴリの最新記事