jQuery UI: Autocomplete でlabelを使用する

概要:
jQuery UIのAutocomplete(オートコンプリート)でlabalを使用する。
focus select を設定しない場合、確定時に、 value が採用される。

デモ


HTML

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>jQuery ui autocomplete sample</title>
    <link rel="stylesheet" href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  </head>
  <body>
    <div>
      <p>「Script」と入力して下さい。</p>
      <input id="keyword" type="search" style="width:200px" />
      <input id="kana" type="search" style="width:200px" />
    </div>
    <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
    <script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
    <script>
      (function($) {
        'use strict';
        $(function() {
          var availableTags = [
            {label:'ECMAScript', value:'エクマスクリプト'},
            {label:'Java Script', value:'ジャバ スクリプト'},
            {label:'Action Script', value:'アクション スクリプト'},
            {label:'Apple Script', value:'アップル スクリプト'},
            {label:'LotusScript', value:'ロータス スクリプト'},
            {label:'VBScript', value:'VB スクリプト'},
            {label:'Windows Script Host', value:'ウインドウズ・スクリプト・ホスト'}
          ];
          $('#keyword').autocomplete({
            source: availableTags,
            focus: function(event, ui) {
              $('#keyword').val(ui.item.label);
              $('#kana').val(ui.item.value);
              return false;
            },
            select: function(event, ui) {
              $('#keyword').val(ui.item.label);
              $('#kana').val(ui.item.value);
              return false;
            }
          });
        });
      })(jQuery);
    </script>
  </body>
</html>