codeBegin Ответов: 10

Текстовое поле должно принимать только цифры и точки


Мне нужно только ввести цифры и одну точку(.) в моем текстовом поле. Как я могу проверить его с помощью кода? Не с помощью управления asp.

Philippe Mori

И вы должны учитывать, что в некоторых языках запятая используется в качестве десятичного разделителя...

10 Ответов

Рейтинг:
76

gqadirshabbir

Для серверной части вы можете использовать этот способ....

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!char.IsControl(e.KeyChar) 
        && !char.IsDigit(e.KeyChar) 
        && e.KeyChar != '.')
    {
        e.Handled = true;
    }

    // only allow one decimal point
    if (e.KeyChar == '.' 
        && (sender as TextBox).Text.IndexOf('.') > -1)
    {
        e.Handled = true;
    }
}




Вы можете использовать эту функцию javascript для проверки на стороне клиента.

<html>
  <head>
    <script language="Javascript">
       <!--
       function isNumberKey(evt)
       {
          var charCode = (evt.which) ? evt.which : event.keyCode
          if (charCode != 46 && charCode > 31 
            && (charCode < 48 || charCode > 57))
             return false;

          return true;
       }
       //-->
    </script>
  </head>
  <body>
    <input id="txtChar"  önkeypress="return isNumberKey(event)">
           type="text" name="txtChar">
  </input></body>
</html>


shaju.nair

Вот это да ! спасибо

Рейтинг:
67
Рейтинг:
39

Prasad_Kulkarni

Попробовать это:

void NumberValidation(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar >= 48 && e.KeyChar <= 57) || e.KeyChar == 46)
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }


Jai panchal

что такое пространство имен для этого "keyevent args"??

Рейтинг:
2

Yatin_Chauhan

вы можете сделать это с помощью функции javascript .создайте функцию java script в теге head и вызовите эту функцию в событии изменения textbox или установите свойство autopostback в true для textbox.


Рейтинг:
1

Member 13366973

Текстовое поле принимает только цифры вместо букв или специальных символов

<input type="text" name="search" id="txtSearch" class=" search-query form-control" placeholder="Search by Id" onkeypress="return event.charCode >= 48 && event.charCode <= 57" onpast="return false" />


CHill60

Этот вопрос был задан и получил ответ почти 6 лет назад! Придерживайтесь ответов на новые вопросы, где ОП все еще нуждается в помощи. Также убедитесь, что вы прочитали, поняли и отвечаете на заданный вопрос. Этот код не допускает никаких десятичных знаков не говоря уже о том чтобы ввести только одну

Рейтинг:
1

Kornfeld Eliyahu Peter

Существует способ, предложенный как "лучшая практика", и это использование проверки регулярных выражений...
Читайте здесь - с образцами - http://msdn.microsoft.com/en-us/library/ff650303.aspx[^]


Рейтинг:
0

walterhevedeich

Вы можете использовать регулярное выражение[^] для проверки текстового поля через Язык JavaScript[^]. Вы можете использовать этот сайт[^] чтобы проверить ваши шаблоны регулярных выражений.


Рейтинг:
0

Banuchandar Nagarajan

validateInt() позволяет вводить в текстовое поле только целочисленные значения.

//Function to allow only Integer values to textbox
        function validateInt(key) {
            //getting key code of pressed key
            var keycode = (key.which) ? key.which : key.keyCode;
            //comparing pressed keycodes
            if ((keycode != 8) && (keycode < 48 || keycode > 57)) {
                return false;
            }
            else {
                return true;
            }
}


validateDec() допускает десятичные значения и допускает только одну десятичную точку.

//Function to allow only Decimal values to textbox
function validateDec(key) {
            //getting key code of pressed key
            var keycode = (key.which) ? key.which : key.keyCode;
            //comparing pressed keycodes
            if (!(keycode == 8 || keycode == 46) && (keycode < 48 || keycode > 57)) {
                return false;
            }
            else {
        var parts = key.srcElement.value.split('.');
                if (parts.length > 1 && keycode == 46)
                    return false;
                return true;
            }
}


И вызовите вышеупомянутый необходимый метод из вашего текстового поля нажатие событие, как показано ниже.
<asp:TextBox ID="txtDays" runat="server" onkeypress="return validateInt(event)" />


<asp:TextBox ID="txtCost" runat="server" onkeypress="return validateDec(event)" />


Рейтинг:
0

Uday P.Singh

Вы можете сделать это с помощью jquery или собственного javascript.

Попробовать это:

Текстовое поле для приема только номера[^]

Ограничение ввода в текстовое поле: разрешение только чисел и десятичной точки[^]

надеюсь, это поможет :)