Увеличение / уменьшение только нечетных значений в Kendo Numerictextbox на спиннерах / клавишах вверх / вниз

У меня есть Kendo NumericTextBox. Когда у некоторого определенного поля есть определенные значения, диапазон значений для этого NumericTextBox будет только нечетным значением.

Установка шага в 2 будет работать, если текущее значение нечетное значение.

Поэтому, если пользователь вводит какое-то значение, например, 22, и нажимает на вращающуюся вверх, оно должно увеличить значения до 23, а затем до 25 при следующем щелчке.

Если текущее значение равно 30, и пользователь нажимает на вращающийся вниз, оно должно уменьшить значение до 29, а затем до 27 при следующем щелчке.

2 ответа

Решение

Вот решение для вас: http://jsfiddle.net/a6Ek2/8/

var numericTextBox = $("#bar").kendoNumericTextBox({
    format: "d",
    value: 1,
    step: 2, }).data('kendoNumericTextBox');

numericTextBox.element.parent().find('.k-link').mousedown(function () {
    var value = numericTextBox.value();
    if (value % 2 === 0) {
        if ($(this).find('span.k-icon').hasClass('k-i-arrow-n')) {
            numericTextBox.value(value - 1);
        }
        else {
            numericTextBox.value(value + 1);
        }
    } });

Вы также можете заблокировать ввод данных с клавиатуры и установить шаг на 2:

$("#foo").kendoNumericTextBox({
    format: "d",
    value: 1,
    step: 2,
});

$("#foo").attr('readonly', true);

Это немного сложно, но может сработать. Вы должны играть с step установите его на 1 или 2 в зависимости от текущего значения числового текстового поля.

Затем вы меняете значение при нажатии на спиннер или при изменении значения. Что-то вроде этого:

function adjustStep() {
    var value = this.value();
    if (value % 2 == 1) {
        number.options.step = 1;
    } else { 
        number.options.step = 2;
    }
}

var number = $("#numerictextbox").kendoNumericTextBox({
    step : 1,
    value : 21,
    spin: adjustStep,
    change: adjustStep
}).data("kendoNumericTextBox");

JSFiddle здесь: http://jsfiddle.net/kF2h7/1/

Другие вопросы по тегам