我有一个剑道数字文本框。当某些特定字段具有某些特定值时,该 NumericTextBox 的值范围将仅为奇数。
如果当前值为奇数,则将 step 设置为 2 将起作用。
因此,如果用户输入像 22 这样的值并单击向上微调器,它应该将值增加到 23,然后在下次单击时增加到 25。
如果当前值为 30 并且用户单击 down spinner ,它应该将值减小到 29 ,然后在下次单击时减小到 27 。
我有一个剑道数字文本框。当某些特定字段具有某些特定值时,该 NumericTextBox 的值范围将仅为奇数。
如果当前值为奇数,则将 step 设置为 2 将起作用。
因此,如果用户输入像 22 这样的值并单击向上微调器,它应该将值增加到 23,然后在下次单击时增加到 25。
如果当前值为 30 并且用户单击 down spinner ,它应该将值减小到 29 ,然后在下次单击时减小到 27 。
这是给你的解决方案: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/