I'm trying to use the latest version of the jquery.ui.spinner.js . http://wiki.jqueryui.com/w/page/12138077/Spinner
The spinners are showing-up and updating the textboxes, but I'm having trouble figuring out how to capture the 'change' event. It triggers when you manually change the value in the textbox, but not when you use the spinner arrows.
jquery:
$('input[name*="opening"]').spinner({ min: 0, max: 100});
$('#doorsize6w7h-f').spinner().change(function(){
alert($(this).spinner('value'));
});
html:
<input type="text" value="0" class="front" id="doorsize6w7h-f" name="opening[0][0]" />
Attach an event on the spinner controls that calls
change()
on your textbox.jsFiddle.
After setting up the spinner.
I know this question has already been answered. But I hope this will help others.
Beside manually edit the value and using the spinner's arrow button, one can also edit the value of spinner by using arrow button on keyboard. In this case, I find keyup event is more robust than change event:
I think this is what you need:
Unlike binding to the
click
event of the buttons, this will also detect use of the up/down keys on the keyboard.See this page for details and more events: http://api.jqueryui.com/spinner/#entry-examples
This is giving me the most fluid results:
There is no "change" event, instead use "spinstop" event:
The documentation also suggests spinchange event, but it's kind of laggy for me.
Resource: http://api.jqueryui.com/spinner/?rdfrom=http%3A%2F%2Fdocs.jquery.com%2Fmw%2Findex.php%3Ftitle%3DUI%2FSpinner%2Fspinner%26redirect%3Dno#event-change
Well, actually I would route changes through standard 'change' event and capture everything, like that: