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-up
class,向下按钮会另外带有一个ui-spinner-down
class。
依赖(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:
-