LANG SELRCT

Google Apps Scriptのコードを書く場所  (新規作成: スプレッドシート | スクリプトエディタ

2020年5月22日金曜日

datalistに一致しない場合にアラートを出したい



input要素とdatalistで入力候補を用意して


リストにない値のときはアラートを出したい


ということを実現するコードを書きました。



コード.gs
function doGet() {
  return HtmlService.createHtmlOutputFromFile("index");
}
意訳
この機能がやること
指定したHTMLファイルを表示する




index.html
<!DOCTYPE html>
<html>

<body>
  <div id="main">
    <input type="text" id="input_text" list="data_list">
    <datalist id="data_list">
      <option>あめ</option>
      <option>ちょこ</option>
      <option>がむ</option>
    </datalist>
  </div>

<script>
document.getElementById('input_text').onchange = checkDataList;

function checkDataList() {
  var dataList = document.getElementById('data_list');
  var inputValue = document.getElementById('input_text').value;
  var array = [];
  for(var i = 0; i < dataList.options.length; i++) {
    var value = dataList.options[i].value;
    array.push(value);
  }

  if(array.indexOf(inputValue) === -1) {
    alert("リストの中から選択してください");
    document.getElementById('input_text').focus();
  }
}
</script>
</body>
</html>


index.htmlのscript内でやっていること

input_textの値が変わった時にcheckDataListを実行する
  • document.getElementById('input_text').onchange = checkDataList;

checkDataListでやることは
  1. datalistのoptionのvalueを配列に入れて
  2. その配列と入力された値をindexOfで判定して
  3. 見つからない場合は-1が返って来るのでアラートを投げる



参考

<datalist>

最新の投稿

Pixel 5でSuicaが使えないときはGoogle PayでSuicaを有効にしてみる

Pixel 5への機種変でSuicaが使えない人向けに書きました。 MISSION Pixel 5でSuicaを使えるようにする SOLUTION 旧端末で機種変更の設定を行う NFCをオンにする Google PayでSuicaを有効にする PROBLEMS 以前...