Spinner Widgetversion added: 1.9
Description: 通过向上/向下按钮和箭头按键操作,增强文本输入框的数值输入功能。
spinner(微调组件),或数步进控件(number stepper widget),是用于处理各种数字输入的完美控件。它允许用户直接输入一个值,或通过键盘、鼠标、滚轮微调改变一个已有的值。当与全球化(Globalize)结合时,您甚至可以微调显示不同地区的货币和日期。
spinner(微调组件)使用两个按钮将文本输入覆盖为当前值的递增值和递减值。spinner(微调组件)增加了按键事件,以便可以用键盘完成相同的递增和递减。spinner(微调组件)代表 全球化(Globalize)的数字格式和解析。
键盘交互(Keyboard interaction)
- UP:对值增加一步。
- DOWN:对值减少一步。
- PAGE UP:对值增加一页。
- PAGE DOWN:对值减少一页。
用鼠标点击微调按钮后,焦点仍停留在文本域中。
当spinner(微调组件)不是只读(<input readonly>)时,用户可以输入值,这可能会产生无效的值(小于最小值,大于最大值,增减错配,非数字输入)。当增减时,不管通过编程方式还是微调按钮方式,值都会被强制为一个有效值(如需了解详情,请查看 stepUp() 和 stepDown() 的描述。
主题(Theming)
spinner(微调组件)使用 jQuery UI CSS 框架 来定义它的外观和感观的样式。如果需要使用spinner(微调组件)指定的样式,则可以使用下面的 CSS class 名称:
ui-spinner:spinner(微调组件)的外层容器。ui-spinner-input:spinner(微调组件)实例化的<input>元素。ui-spinner-button:用于递增或递减spinner(微调组件)值的按钮控件。向上按钮会另外带有一个ui-spinner-upclass,向下按钮会另外带有一个ui-spinner-downclass。
依赖(Dependencies)
- UI 核心(UI Core)
- 部件库(Widget Factory)
- 按钮部件(Button Widget)
- 全球化(Globalize)(外部的,可选的;当与
culture和numberFormat选项一起使用时)
Additional Notes:
- 该部件要求一些功能性的 CSS,否则将无法工作。如果您创建了一个自定义的主题,请使用小部件指定的 CSS 文件作为起点。
- 该部件以编程方式操作元素的值,因此当元素的值改变时不会触发原生的
change事件。 - 不支持在
<input type="number">上创建选择器,因为会造成与本地spinner(微调组件)的 UI 冲突。
Options
cultureType: String
null
culture选项 用于解析和格式化值。
如果为null,在Globalize下当前设置的culture将被使用,
可供的culture,请查看Globalize 文档。
只有当numberFormat选项设置了,才会有关联。
需要引用Globalize。初始化带有指定 culture选项的 spinner:
|
1
|
|
在初始化后,获取或设置culture 选项:
|
1
2
3
4
5
|
|
disabledType: Boolean
false
true,则禁用该 spinner(微调组件)。
初始化带有指定 disabled选项的 spinner:
|
1
|
|
在初始化后,获取或设置disabled 选项:
|
1
2
3
4
5
|
|
iconsType: Object
{ down: "ui-icon-triangle-1-s", up: "ui-icon-triangle-1-n" }
- up (string, default: "ui-icon-triangle-1-n")
- down (string, default: "ui-icon-triangle-1-s")
初始化带有指定 icons选项的 spinner:
|
1
|
|
在初始化后,获取或设置icons 选项:
|
1
2
3
4
5
|
|
incrementalType: Boolean or Function( Integer count )
true
-
Boolean:如果设置为
true,当按住spinner(微调组件)按钮不放时,数值会根据step选项的值不断的增加或减少。 当设置为false时,所有步骤都是相等的,(由step选项所定义)(注:点一下,数值会根据step选项的值增加或减少一步)。 - Function: 接收一个参数: 已发生的自旋数。 必须返回在当前发生的微调的步数。
初始化带有指定 incremental选项的 spinner:
|
1
|
|
在初始化后,获取或设置incremental 选项:
|
1
2
3
4
5
|
|
maxType: Number or String
null
max属性存在,该选项未明确设置,那么该元素的max属性就被用作该选项的值。
如果为null,表示没有上限。
- Number: 最大值。
-
String:
如果应用包含了Globalize,
max选项可以传递可以被numberFormat和culture选项解析的 字符串。 否则求助原生的parseFloat()将方法。
初始化带有指定 max选项的 spinner:
|
1
|
|
在初始化后,获取或设置max 选项:
|
1
2
3
4
5
|
|
minType: Number or String
null
min属性存在,该选项未明确设置,那么该元素的min属性就被用作该选项的值。
如果为null,表示没有下限。
- Number: 最小值。
-
String:
如果应用包含了Globalize,
max选项可以传递可以被numberFormat和culture选项解析的 字符串。 否则使用原生的parseFloat()方法解析。
初始化带有指定 min选项的 spinner:
|
1
|
|
在初始化后,获取或设置min 选项:
|
1
2
3
4
5
|
|
numberFormatType: String
null
初始化带有指定 numberFormat选项的 spinner:
|
1
|
|
在初始化后,获取或设置numberFormat 选项:
|
1
2
3
4
5
|
|
pageType: Number
10
初始化带有指定 page选项的 spinner:
|
1
|
|
在初始化后,获取或设置page 选项:
|
1
2
3
4
5
|
|
stepType: Number or String
1
- Number: 步数
-
String:
如果应用包含了Globalize,
max选项可以传递可以被numberFormat和culture选项解析的 字符串。 否则使用原生的parseFloat()方法解析。
初始化带有指定 step选项的 spinner:
|
1
|
|
在初始化后,获取或设置step 选项:
|
1
2
3
4
5
|
|
Methods
destroy()Returns: jQuery (plugin only)
- 该方法不接受任何参数。
调用 destroy 方法:
|
1
|
|
disable()Returns: jQuery (plugin only)
- 该方法不接受任何参数。
调用 disable 方法:
|
1
|
|
enable()Returns: jQuery (plugin only)
- 该方法不接受任何参数。
调用 enable 方法:
|
1
|
|
option( optionName )Returns: Object
optionName 关联的值。-
optionNameType: String要获取值的选项的名称。
调用该方法:
|
1
|
|
option()Returns: PlainObject
- 该方法不接受任何参数。
调用该方法:
|
1
|
|
option( optionName, value )Returns: jQuery (plugin only)
optionName 关联的 spinner 选项的值。调用该方法:
|
1
|
|
option( options )Returns: jQuery (plugin only)
-
optionsType: Object要设置的 option-value 对。
调用该方法:
|
1
|
|
value()Returns: Number
numberFormat 和 culture选项解析的。- 该方法不接受任何参数。
调用该方法:
|
1
|
|
value( value )Returns: jQuery (plugin only)
-
value用来设置的值。 如果传递的是一个字符串,那么 这个值是基于
numberFormat和culture选项解析的。
调用该方法:
|
1
|
|
widget()Returns: jQuery
jQuery对象。
- 该方法不接受任何参数。
调用 widget 方法:
|
1
|
|
扩展点(Extension Points)
spinner(微调组件)是widget factory构建的,并且可以扩展。 当扩展部件时, 你必须覆盖或添加新的行为到现有的方法。 下列方法被提供作为扩展点 用相同的API稳定性如上所列的plugin methods。 有关小部件扩展的更多信息, 请参阅使用Widget Factory 扩展小部件。
_uiSpinnerHtml()Returns: String
<input>元素。
- 该方法不接受任何参数。
用没有圆角的<div> 包裹 spinner(微调组件)。
|
1
2
3
|
|
Events
change( event, ui )Type: spinchange
注意:ui 对象是空的,这里包含它是为了与其他事件保持一致性。
初始化带有指定 change 回调的 spinner(微调器):
|
1
2
3
|
|
绑定一个事件监听器到 spinchange 事件:
|
1
|
|
create( event, ui )Type: spincreate
注意:ui 对象是空的,这里包含它是为了与其他事件保持一致性。
初始化带有指定 create 回调的 spinner(微调器):
|
1
2
3
|
|
绑定一个事件监听器到 spincreate 事件:
|
1
|
|
spin( event, ui )Type: spin
ui.value比较来
确定的微调的方向)。
可以取消,以防止被更新值。
-
eventType: Event
-
uiType: Object
-
valueType: Number要设置的新值,除非该事件被取消。/div>Code examples:
初始化带有指定 spin 回调的 spinner(微调器):
123$( ".selector" ).spinner({spin: function( event, ui ) {}});绑定一个事件监听器到 spin 事件:
1$( ".selector" ).on( "spin", function( event, ui ) {} );start( event, ui )Type:
spinstart微调开始之前,触发该事件。可以取消,以防止微调。注意:
ui对象是空的,这里包含它是为了与其他事件保持一致性。Code examples:初始化带有指定 start 回调的 spinner(微调器):
123$( ".selector" ).spinner({start: function( event, ui ) {}});绑定一个事件监听器到 spinstart 事件:
1$( ".selector" ).on( "spinstart", function( event, ui ) {} );stop( event, ui )Type:
spinstop微调结束后,触发该事件。注意:
ui对象是空的,这里包含它是为了与其他事件保持一致性。Code examples:初始化带有指定 stop 回调的 spinner(微调器):
123$( ".selector" ).spinner({stop: function( event, ui ) {}});绑定一个事件监听器到 spinstop 事件:
1$( ".selector" ).on( "spinstop", function( event, ui ) {} );Example:
普通的数字微调器。
12345678910111213141516171819<!doctype html><html lang="en"><head><meta charset="utf-8"><title>spinner demo</title><link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"><script src="//code.jquery.com/jquery-1.10.2.js"></script><script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script></head><body><input id="spinner"><script>$( "#spinner" ).spinner();</script></body></html>Demo:
-