Принять только цифры на TextBox ASP.NET - PullRequest
0 голосов
/ 22 июня 2010

У меня есть TextBox, и я хочу принять только numbers в этом текстовом поле при наборе.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 22 июня 2010

Я использую следующий код на стороне клиента, чтобы сделать это:

jQuery.fn.ForceNumericOnly =
function()
{
    return this.each(function()
    {
        $(this).keydown(function(e)
        {
            var key = e.charCode || e.keyCode || 0;
            // allow backspace, tab, delete, arrows, numbers and keypad numbers ONLY
            return (
                key == 8 || 
                key == 9 ||
                key == 46 ||
                (key >= 37 && key <= 40) ||
                (key >= 48 && key <= 57) ||
                (key >= 96 && key <= 105));
        })
    })
};

Затем на своей странице aspx я прикрепляю его к своему TextBox с помощью:

$(document).ready(function()
{
    $("#<%= txtMyTextBox.ClientID %>").ForceNumericOnly();
});

Это сторона клиентаПроверяйте ТОЛЬКО, поэтому обязательно выполняйте проверку на стороне сервера, используя, например, Int32.TryParse для ваших данных, чтобы убедиться, что есть номер.

1 голос
/ 22 июня 2010

Отличный способ сделать это - использовать MaskedEditExtender в наборе инструментов управления Ajax.

На странице примера даже есть демонстрационная версия для ограничения ввода пользователем только цифр и связанных с цифрами символов.

0 голосов
/ 22 июня 2010

Если вы используете AjaxControlToolkit , рассмотрите расширитель FilteredTextBox.

<ajaxToolkit:FilteredTextBoxExtender ID="ftbe" runat="server" TargetControlID="YourTextBoxID" FilterType="Numbers" FilterMode="ValidChars" />
...