#asp.net-mvc #kendo-ui #kendonumerictextbox
#asp.net-mvc #kendo-пользовательский интерфейс #kendonumerictextbox
Вопрос:
У меня есть Kendo NumericTextBox. Это текстовое поле допускает положительные и отрицательные числа.
Как и ожидалось, отрицательные числа имеют префикс ‘-‘.
Возможно ли добавить префикс ‘ ‘ к положительным числам?
Я использую ASP.NET MVC 5. Вот пример кода:
@Html.Kendo().NumericTextBoxFor(model => model.PositveNegative).Step(0.25f)
Любая помощь в этом была бы весьма признательна.
Спасибо.
Abrar
Ответ №1:
Вы можете использовать обработчик событий Change и Spin. Вот код в версии javascript.
$("#inputID").kendoNumericTextBox({
format: " #",
change: function() {
var value = this.value();
if(value>0) this.options.format=" #";
else this.options.format="#";
},
spin: function() {
var value = this.value();
if(value>0) this.options.format=" #";
else this.options.format="#";
}
});
Комментарии:
1. Спасибо за пример кода. Он добавляет для положительных чисел. Однако, есть одна проблема, отрицательные числа также получить префикс» «. <script> function change() { $(«#PositveNegative»).kendoNumericTextBox({ format: » #.##», change: function() { var value = this.value(); if(value > 0) { this.options.format=» #.##»; } else { this.options.format=»#.##»; } } }); }
2. также добавьте обработчик для «вращения»
3. Прошу прощения, позвольте мне уточнить. Я использовал ваш пример с обработчиком вращения. Я по-прежнему сталкиваюсь с той же проблемой, что если я ввожу в NumericTextBox или использую стрелки вверх вниз, отрицательные значения отображаются как -0.25, -0.5, -0.75 и т.д. Я помещаю предупреждение (значение) в предложение else и получаю желаемый результат -0.25. Это как если бы формат не применялся. У вас есть какие-либо другие предложения? Я ценю вашу помощь.
Ответ №2:
Используя ответ г-на Кокококо в качестве отправной точки, вот версия оболочки MVC для вас:
@(Html.Kendo().NumericTextBox().Name("Test").Step(0.25f)
.Events(events => events.Change("Testing").Spin("Testing"))
)
<script>
function Testing()
{
var numeric = $("#Test").val();
if (numeric > 0)
{
$("#Test").kendoNumericTextBox({ format: " ##.##", decimals: 2 });
}
else
{
$("#Test").kendoNumericTextBox({ format: "##.##", decimals: 2 });
}
console.log(numeric);
}
</script>
Это работает либо при вводе, либо при использовании блесен и должно дать вам желаемые результаты.
Комментарии:
1. Это сработало для меня. Я действительно ценю вашу помощь и помощь @mr-cococococo.