jQuery UIでSpinnerを設定する方法

jQuery UIでSpinnerを設定する方法

サンプル

スピナー


デフォルト

整数値

小数値

時間

HTMLコード

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8">
   <title>jQuery UI Spinner </title>
   <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.css">
   <script src="https://code.jquery.com/jquery-3.6.0.js"></script>
   <script src="https://code.jquery.com/ui/1.13.0/jquery-ui.js"></script>
   <script src="https://jqueryui.com/resources/demos/external/globalize/globalize.js"></script>
   <script src="https://jqueryui.com/resources/demos/external/globalize/globalize.culture.de-DE.js"></script>
   <script src="https://jqueryui.com/resources/demos/external/globalize/globalize.culture.ja-JP.js"></script>
   <script src="https://jqueryui.com/resources/demos/external/jquery-mousewheel/jquery.mousewheel.js"></script>

   <script>
      /* incremental オプションの呼び出し関数 */
      function spinnerIncrement() {
         return 3;
      }
      $( function() {
         var spinner1 = $( "#spinner1" ).spinner();

         var spinner2 = $( "#spinner2" ).spinner({
            incremental :spinnerIncrement,
            max :9,
            min:-9 
         });


         $( "#spinner3" ).spinner({
            step: 0.01,
            numberFormat: "n"
         });
         $( "#culture3" ).on( "change", function() {
            var current = $( "#spinner3" ).spinner( "value" );
            Globalize.culture( $(this).val() );
            $( "#spinner3" ).spinner( "value", current );
         });
         $.widget( "ui.timespinner", $.ui.spinner, {
            options: {
               // seconds
               step: 60 * 1000,
               // hours
               page: 60
            },
            _parse: function( value ) {
               if ( typeof value === "string" ) {
                  // already a timestamp
                  if ( Number( value ) == value ) {
                     return Number( value );
                  }
                  return +Globalize.parseDate( value );
               }
               return value;
            },
            _format: function( value ) {
               return Globalize.format( new Date(value), "t" );
            }
         });

         $( "#spinner4" ).timespinner();
         $( "#culture4" ).on( "change", function() {
            var current = $( "#spinner4" ).timespinner( "value" );
            Globalize.culture( $(this).val() );
            $( "#spinner4" ).timespinner( "value", current );
         });
      } );
   </script>
</head>
<body>
   <h2>スピナー</h2>

   <div>
      <h3>デフォルト</h3>
      <p>
         <label for="spinner1">値を選択してください:</label>
         <input id="spinner1" name="value">
      </p>
   </div>

   <div>
      <h3>整数値</h3>
      <p>
         <label for="spinner2">値を選択してください:</label>
         <input id="spinner2" name="value">
      </p>
   </div>

   <div>
      <h3>小数値</h3>
      <p>
         <label for="spinner3">小数値:</label>
         <input id="spinner3" name="spinner" value="5.06">
      </p>
      <p>
         <label for="culture3">小数値に適用するフォーマットのカルチャを選択してください:</label>
         <select id="culture3">
            <option value="en-EN" selected="selected">英語</option>
            <option value="de-DE">ドイツ語</option>
            <option value="ja-JP">日本語</option>
         </select>
      </p>
   </div>


   <div>
      <h3>時間</h3>
      <p>
         <label for="spinner4">時刻:</label>
         <input id="spinner4" name="spinner" value="08:30 PM">
      </p>
      <p>
         <label for="culture4">時刻に適用するフォーマットのカルチャを選択してください</label>
         <select id="culture4">
            <option value="en-EN" selected="selected">英語</option>
            <option value="de-DE">ドイツ語</option>
            <option value="ja-JP">日本語</option>
         </select>
      </p>
   </div>

<body>
</html>

デモ

Spinner Widget

オプション

Spinner ウィジェットのオプションを紹介していこうと思います。

classes

Spinnerのスタイルのクラスを定義できるオプションです。デフォルトは以下の通りです。

{
  "ui-spinner": "ui-corner-all",
  "ui-spinner-down": "ui-corner-br",
  "ui-spinner-up": "ui-corner-tr"
}

culture

数値や通貨の場合、国/地域によって違うフォーマットが違うので、利用するカルチャを設定設定できます。

デフォルトは「null」。

日本の場合は「ja」、フランスの場合は「fr」のように指定します。

disabled

true」にすると無効化することができるオプションです。

デフォルトは「false」です。

icons

Spinnerのアイコンを指定できるオプションです。デフォルトは以下の通りです。

{
 down: "ui-icon-triangle-1-s"
,  up: "ui-icon-triangle-1-n" 
}

downが減らすためのアイコン、upが増加用のアイコンとなります。

incremental

増加数、または、減少数を定義する関数を指定できるオプションです。

デフォルトは「true」です。

max

増加できる最大値を定義できるオプションです。

min

減少できる最小値を定義できるオプションです。

numberFormat

数値フォーマットを定義できるオプションです。一般的なオプションとしては以下の二つになります。

  • n:数値型
  • C:通貨型

page

「pageUp」または「pageDown」メソッド実行時、増える、または、減る値を定義できるオプションです。

デフォルトは「10」です。

step

Spinnerアイコンクリック時、または、「stepUp」/「stepDown」メソッド実行時、増える、または減る値を定義できるオプションです。

デフォルトは「1」です。