Skip to content

Commit 1552fc8

Browse files
committed
Spinner: Add isValid method. Fixes #9542 - Spinner: Add isValid() method
1 parent 6e799c3 commit 1552fc8

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

tests/unit/spinner/spinner_methods.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,38 @@ test( "enable", function() {
7373
equal( 2, element.val(), "keyboard - value changes on key UP" );
7474
});
7575

76+
test( "isValid", function() {
77+
expect( 8 );
78+
var element = $( "#spin" ).spinner({
79+
min: 0,
80+
max: 10,
81+
step: 2
82+
}),
83+
spinner = element.spinner( "instance" );
84+
ok( !spinner.isValid(), "initial state is invalid" );
85+
86+
element.val( "this is not a number" );
87+
ok( !spinner.isValid(), "text string is not valid" );
88+
89+
element.val( "0" );
90+
ok( spinner.isValid(), "min value is valid" );
91+
92+
element.val( "10" );
93+
ok( spinner.isValid(), "max value is valid" );
94+
95+
element.val( "4" );
96+
ok( spinner.isValid(), "inbetween step is valid" );
97+
98+
element.val( "-1" );
99+
ok( !spinner.isValid(), "below min is invalid" );
100+
101+
element.val( "11" );
102+
ok( !spinner.isValid(), "above max is invalid" );
103+
104+
element.val( "1" );
105+
ok( !spinner.isValid(), "step mismatch is invalid" );
106+
});
107+
76108
test( "pageDown", function() {
77109
expect( 4 );
78110
var element = $( "#spin" ).val( -12 ).spinner({

ui/jquery.ui.spinner.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,18 @@ $.widget( "ui.spinner", {
418418
});
419419
},
420420

421+
isValid: function() {
422+
var value = this.value();
423+
424+
// null is invalid
425+
if ( value === null ) {
426+
return false;
427+
}
428+
429+
// if value gets adjusted, it's invalid
430+
return value === this._adjustValue( value );
431+
},
432+
421433
// update the value without triggering change
422434
_value: function( value, allowAny ) {
423435
var parsed;

0 commit comments

Comments
 (0)