텍스트 상자에 정수만 허용하는 방법은 무엇입니까?
내 양식에서는 텍스트 상자에서만 정수 값 입력을 허용합니다.어떻게 하는 거지?
이에 대해 정규식 Validator를 사용할 수 있습니다. 아래는 샘플 코드입니다.
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1"
ControlToValidate="TextBox1" runat="server"
ErrorMessage="Only Numbers allowed"
ValidationExpression="\d+">
</asp:RegularExpressionValidator>
정규식에서 Validator에 TextBox의 유효성을 검사하는 ValidationExpression이라는 필드가 있기 때문에 위의 TextBox는 정수만 입력할 수 있습니다.그러나 요구 사항에 따라 수정할 수 있습니다.
MVC와 Jquery에서 더 많은 예를 볼 수 있습니다.
<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>
사용해 보십시오.
참고: 이는 Ajax 툴킷을 사용하는 것입니다.
먼저 Ajax Script Manager를 추가하고 아래 코드를 사용합니다.
<asp:FilteredTextBoxExtender ID="TextBox1_FilteredTextBoxExtender" runat="server"
Enabled="True" TargetControlID="TextBox1" FilterType="Numbers">
</asp:FilteredTextBoxExtender>
쉬운 방법:-
TextBox의 on-down Property를 사용하여 값을 숫자로만 제한할 수 있습니다.
매우 쉽습니다.:-)
<asp:TextBox ID="TextBox1" runat="server" onkeydown = "return (!(event.keyCode>=65) && event.keyCode!=32);"></asp:TextBox>
!(keyCode>=65) 체크는 Albphabets를 제외하기 위한 것입니다.
키코드!=32 체크는 숫자 사이의 공백 문자를 제외하는 것입니다.
훨씬 더 쉬운 방법은 사용하는 것입니다.TextMode
속성:
<asp:TextBox runat="server" ID="txtTextBox" TextMode="Number">
대신 이것을 사용해 보세요.
참고: 이는 Ajax 툴킷을 사용하는 것입니다.
먼저 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>
클라이언트 측 검증을 사용할 수 있습니다.
<asp:textbox onkeydown="return (!(event.keyCode>=65) && event.keyCode!=32);" />
차근차근
당신이 다음과 같은 텍스트 상자를 가지고 있다는 것을 고려할 때,
<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-statement의 첫 번째 부분에서 ASCII 제어 문자, 또는 제외된 모든 문자(숫자가 아님)가 제외됩니다.
다른 솔루션은 설정한 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
속성도 있습니다.
아래와 같이 비교 검증기로 할 수 있습니다.다른 답변과 달리 정수 값에 유효한 음수도 입력할 수 있습니다.
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:CompareValidator ControlToValidate="TextBox1" runat="server" ErrorMessage="Integers only please" Operator="DataTypeCheck" Type="Integer" ></asp:CompareValidator>
그냥 사용하기
<input type="number" id="foo" runat="server" />
IE +10을 제외한 모든 최신 브라우저에서 작동합니다.다음은 전체 목록입니다.
http://caniuse.com/ #http=input-number
사용:
<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;
}
입력 텍스트 상자에서 온키프레스 이벤트로 이 기능 호출
정규식 검증기를 사용할 수 있습니다.
<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>
우리는 자바스크립트 코드를 사용할 수 있습니다.
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;
}
텍스트 상자를 사용하여 이 코드를 확인합니다.
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);" />
수락 키:숫자 + NumPed 숫자 + 탭 + "," + "." + 왼쪽버튼 + 오른쪽 버튼 + 삭제 + 백스페이스
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();
}
}
유용한 Microsoft msdn 문서 How To: Use Regular Expressions to Constraint in ASP.NET에서 입력을 제한하는 방법을 찾을 수 있습니다.일반 정규식 표를 확인합니다.다음에 대한 검증 예제가 있습니다.
음이 아닌 정수
^\d+$
이 식은 필드에 0보다 큰 정수가 포함되어 있는지 확인합니다.
사용자가 정규식 검증자 아래에 있습니다.
<asp:RegularExpressionValidator ID="RegularExpressionValidatorNumeric" runat="server" ControlToValidate="yourControl ID" ErrorMessage="Registraion ID Should be a Numeric" ValidationExpression="^\d+$" ></asp:RegularExpressionValidator>
ASP.NET Ajax 필터 TextBoxExtender 컨트롤을 사용합니다.
https://www.aspsnippets.com/Articles/ASPNet-AJAX-FilteredTextBoxExtender-Control-Example.aspx
언급URL : https://stackoverflow.com/questions/9732455/how-to-allow-only-integers-in-a-textbox
'programing' 카테고리의 다른 글
ASP.NET 캐시 추가 대 삽입 (0) | 2023.06.22 |
---|---|
실시간 데이터베이스에 안전하지 않은 규칙이 있다는 Firebase 이메일 (0) | 2023.06.22 |
SQL Server에서 문자열에 포함된 각 단어의 첫 글자를 대문자로 표시하는 방법 (0) | 2023.06.22 |
pip 패키지를 로컬이 아닌 글로벌하게 설치하려면 어떻게 해야 합니까? (0) | 2023.06.22 |
MongoDB는 부동 소수점 유형을 지원합니까? (0) | 2023.06.22 |