В моей форме я хочу разрешить ввод целочисленных значений только в текстовом поле. Как это сделать?
Как разрешить только целые числа в текстовом поле?
Ответ 1
Вы можете использовать RegularExpressionValidator для этого. ниже приведен пример кода:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1"
ControlToValidate="TextBox1" runat="server"
ErrorMessage="Only Numbers allowed"
ValidationExpression="\d+">
</asp:RegularExpressionValidator>
над TextBox допускается вводить только целое число, поскольку в RegularExpressionValidator есть поле ValidationExpression, которое проверяет TextBox. Тем не менее, вы можете изменить в соответствии с вашими требованиями.
Вы можете увидеть больше примеров в MVC и Jquery здесь.
Ответ 2
<HTML>
<HEAD>
<SCRIPT language=Javascript>
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
</SCRIPT>
</HEAD>
<BODY>
<INPUT id="txtChar" onkeypress="return isNumberKey(event)" type="text" name="txtChar">
</BODY>
</HTML>
Ответ 3
Попробуйте следующее:
Примечание. Это использование Ajax Toolkit
Сначала добавьте Ajax Script Manager и используйте приведенный ниже код
<asp:FilteredTextBoxExtender ID="TextBox1_FilteredTextBoxExtender" runat="server"
Enabled="True" TargetControlID="TextBox1" FilterType="Numbers">
</asp:FilteredTextBoxExtender>
Ответ 4
Легкий метод: -
Вы можете использовать свойство onkeydown для TextBox для ограничения его значения только на числа.
Очень просто..: -)
<asp:TextBox ID="TextBox1" runat="server" onkeydown = "return (!(event.keyCode>=65) && event.keyCode!=32);"></asp:TextBox>
! (keyCode >= 65) проверка предназначена для исключения Albphabets..
keyCode!= 32 check предназначен для исключения символа пробела между номерами.
Ответ 5
попробуйте это вместо
Примечание. Это использование Ajax Toolkit
Сначала добавьте Ajax Script Manager и используйте приведенный ниже код для применения фильтра к текстовому поле
Укажите пространство имен в начале страницы asp.net
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<asp:TextBox ID="TxtBox" runat="server"></asp:TextBox>
<cc1:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" runat="server" Enabled="True" TargetControlID="TxtBox" FilterType="Numbers" FilterMode="ValidChars">
</cc1:FilteredTextBoxExtender>
Ответ 6
Другим решением является использование RangeValidator, где вы устанавливаете Type="Integer"
следующим образом:
<asp:RangeValidator runat="server"
id="valrNumberOfPreviousOwners"
ControlToValidate="txtNumberOfPreviousOwners"
Type="Integer"
MinimumValue="0"
MaximumValue="999"
CssClass="input-error"
ErrorMessage="Please enter a positive integer."
Display="Dynamic">
</asp:RangeValidator>
Вы также можете установить приемлемые значения для атрибутов MinimumValue
и MaximumValue
.
Ответ 7
шаг за шагом
если у вас есть текстовое поле, как показано ниже,
<asp:TextBox ID="TextBox13" runat="server"
onkeypress="return functionx(event)" >
</asp:TextBox>
вы создаете функцию JavaScript следующим образом:
<script type = "text/javascript">
function functionx(evt)
{
if (evt.charCode > 31 && (evt.charCode < 48 || evt.charCode > 57))
{
alert("Allow Only Numbers");
return false;
}
}
</script>
первая часть if-оператора исключает символы управления ASCII, операторы or исключают что-либо, что не является числом
Ответ 8
Это можно сделать с помощью валидатора сравнения, как показано ниже. В отличие от других ответов, это также позволяет вводить отрицательные числа, которые действительны для целочисленных значений.
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:CompareValidator ControlToValidate="TextBox1" runat="server" ErrorMessage="Integers only please" Operator="DataTypeCheck" Type="Integer" ></asp:CompareValidator>
Ответ 9
Просто используйте
<input type="number" id="foo" runat="server" />
Он будет работать во всех современных браузерах, кроме IE +10. Вот полный список:
Ответ 10
Вы можете использовать RegularExpressionValidator
<asp:TextBox ID="viewTextBox" runat="server" Text="0"></asp:TextBox>
<asp:RegularExpressionValidator ID="viewRegularExpressionValidator" runat="server" ValidationExpression="[0-9]{1,50}" ControlToValidate="viewTextBox" ErrorMessage="Please Enter numbers only">*</asp:RegularExpressionValidator>
Ответ 11
Вы можете использовать проверку на стороне клиента:
<asp:textbox onkeydown="return (!(event.keyCode>=65) && event.keyCode!=32);" />
Ответ 12
Еще более простой способ - использовать атрибут TextMode
:
<asp:TextBox runat="server" ID="txtTextBox" TextMode="Number">
Ответ 13
мы можем использовать код javascript
function validateAlphaNumericCode(event) {
keyEntry = (event.which) ? event.which : event.keyCode
if (((keyEntry >= '65') && (keyEntry <= '90')) || ((keyEntry >= '97') && (keyEntry <= '122')) || (keyEntry == '37') || (keyEntry == '39') || (keyEntry == '46') || (keyEntry == '8') || (keyEntry == '9') || (keyEntry == '95') || ((keyEntry >= '48') && (keyEntry <= '57')))
return true;
else
return false;
}
подтвердите этот код с помощью своего текстового поля.
Ответ 14
Попробуйте следующее:
<input type="text" onkeypress = "return isDigit(event,this.value);"/>
function isDigit(evt, txt) {
var charCode = (evt.which) ? evt.which : event.keyCode
var c = String.fromCharCode(charCode);
if (txt.indexOf(c) > 0 && charCode == 46) {
return false;
}
else if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
}
Вызвать эту функцию из текстового поля ввода в событии onkeypress
Ответ 15
function CheckNumeric(event) {
var _key = (window.Event) ? event.which : event.keyCode;
if ((_key > 95 && _key < 106) || (_key > 47 && _key < 58) || _key == 8 || _key == 9 || _key == 37 || _key == 39 || _key == 190 || _key == 110) {
return true;
}
else {
return false;
}
}
<input type="text" onkeydown="return CheckNumerick(event);" />
Accept Keys: Numbers + NumPedNumbers + Tab + "," + "." + LeftButton + RightButton + Delete + BackSpace
Ответ 16
if (document.de.your_textbox_id.value != "")
{
var checkOK = "0123456789";
var checkStr = document.de.your_textbox_id.value;
var allValid = true;
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
if (!allValid)
{
alert("Please enter only numeric characters in the text box.");
document.de.your_textbox_id.focus();
}
}
Ответ 17
Вы можете найти полезную статью microsoft msdn Как использовать регулярные выражения для ограничения ввода в ASP.NET. Взгляните на таблицу "Обычные регулярные выражения". Он имеет пример проверки для
Неотрицательное целое число
^\d+$
Это выражение подтверждает, что поле содержит целое число больше нуля.
Ответ 18
Пользователь под валидатором регулярных выражений.
<asp:RegularExpressionValidator ID="RegularExpressionValidatorNumeric" runat="server" ControlToValidate="yourControl ID" ErrorMessage="Registraion ID Should be a Numeric" ValidationExpression="^\d+$" ></asp:RegularExpressionValidator>
Ответ 19
Я бы использовал ASP.NET Ajax Filter TextBoxExtender
https://www.aspsnippets.com/Articles/ASPNet-AJAX-FilteredTextBoxExtender-Control-Example.aspx