如何使用 Jquery 屏蔽小数输入?

How to mask a decimal input using Jquery?

我以前使用 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处理吗?

试试下面的代码

文本框:

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

});

});

我必须在 jQuery Mask Plugin and MaskInput 插件之间进行选择。 jQuery Mask Plguin 比 MaskInput 更大,因为它包含更多功能。但是,根据我的需要,我选择了 MaskInput Plugin。

您可以找到一些示例 here and my experience here