Как замаскировать десятичный ввод с помощью Jquery? - PullRequest
0 голосов
/ 25 июня 2018

Ранее я использовал Telerik RadNumericTextBox для ввода десятичных чисел, как показано ниже:

<telerik:RadNumericTextBox ID="txtNewAmt" runat="server" EnableViewState="false"
           Width="100px" CssClass="input" Type="Number" EnabledStyle-HorizontalAlign="Right"
           PlacesBeforeDecimal="11" NumberFormat-DecimalDigits="2">
      <ClientEvents OnKeyPress="validateRegExMaskNumeric" />
</telerik:RadNumericTextBox>

Здесь, на входе,

  1. Только цифрыразрешено.
  2. Числа будут выровнены справа.
  3. Число знаков после запятой может быть 11 или меньше, а после десятичного - 2 или меньше.

Но, ябольше не хочу использовать Telerik.

Как замаскировать то же самое, используя Jquery?Может ли оно быть обработано с помощью asp:Textbox?

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Мне нужно выбрать между jQuery Mask Plugin и MaskInput Плагин. jQuery Mask Plguin является более объемным, чем MaskInput, поскольку содержит больше функций. Но для своих нужд я выбрал плагин MaskInput.

Вы можете найти несколько примеров здесь и мой опыт здесь .

0 голосов
/ 25 июня 2018

попробуйте с этим кодом ниже

Текстовое поле:

Jquery

$(function () {
$("input[id*='txtQty']").keydown(function (event) {


    if (event.shiftKey == true) {
        event.preventDefault();
    }

    if ((event.keyCode >= 48 && event.keyCode <= 57) || 
        (event.keyCode >= 96 && event.keyCode <= 105) || 
        event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 37 ||
        event.keyCode == 39 || event.keyCode == 46 || event.keyCode == 190) {

    } else {
        event.preventDefault();
    }

    if($(this).val().indexOf('.') !== -1 && event.keyCode == 190)
        event.preventDefault(); 
    //if a decimal has been added, disable the "."-button

});

});

...