Ответ 1
Прикрепите событие к элементам счетчика, который вызывает change()
в вашем текстовом поле.
$('.ui-spinner-button').click(function() {
$(this).siblings('input').change();
});
После настройки счетчика.
Я пытаюсь использовать последнюю версию jquery.ui.spinner.js. http://wiki.jqueryui.com/w/page/12138077/Spinner
Прядильщики обнаруживают и обновляют текстовые поля, но мне трудно понять, как записать событие "change". Он запускается при ручном изменении значения в текстовом поле, но не при использовании стрелок-поворот.
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]" />
Прикрепите событие к элементам счетчика, который вызывает change()
в вашем текстовом поле.
$('.ui-spinner-button').click(function() {
$(this).siblings('input').change();
});
После настройки счетчика.
Я думаю, что это то, что вам нужно:
$('.mySpinner').spinner({
stop:function(e,ui){
alert('Triggered after a spin.');
}
});
В отличие от привязки к событию click
кнопок, это также будет определять использование клавиш вверх/вниз на клавиатуре.
Подробнее см. на этой странице и других событиях: http://api.jqueryui.com/spinner/#entry-examples
Нет события "изменения", вместо этого используйте событие "spinstop":
$('#doorsize6w7h-f').on("spinstop", function(){
alert($(this).spinner('value'));
});
Документация также предлагает событие spinchange, но для меня это немного лаконично.
Ну, на самом деле я бы перенаправлял изменения через стандартное событие "change" и записывал все, например:
$('input[name*="opening"]').spinner({
min: 0,
max: 100,
spin: function(event, ui) {
$(this).change();
}
});
Я знаю, что на этот вопрос уже был дан ответ. Но я надеюсь, что это поможет другим.
Кроме того, вручную отредактируйте значение и с помощью кнопки со стрелкой, можно также отредактировать значение счетчика с помощью кнопки со стрелкой на клавиатуре. В этом случае я считаю, что событие keyup более надежное, чем событие изменения:
$(document).ready(function(){
var range_spinner = $('.spinner').spinner();
// hack to trigger input keyup whenever spinner button clicked:
$('.ui-spinner-button').click(function() { $(this).siblings('input').keyup(); });
// keyup will catch any stroke on keyboard
$('#range').keyup(function(){
console.log(range_spinner.spinner('value'));
});
});
Это дает мне самые плохие результаты:
function betterSpinner(input)
{
input.spinner(
{
spin: function(event, ui)
{
// the spin event is raised before the value actually gets changed,
// so let update it here before raising the input change() event.
input.val(ui.value);
input.change();
}
});
}
$(document).ready(function ()
{
betterSpinner($("#myInput"));
});