Добавить положительный знак в Kendo NumericTextBox

#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.