如何使用Jquery屏蔽十进制输入?

时间:2018-06-25 11:30:07

标签: jquery asp.net telerik jquery-inputmask

我以前曾使用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 :(得分:0)

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

您可以找到一些示例here和我的经验here

答案 1 :(得分:-1)

尝试以下代码

文本框:

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

});

});