code

텍스트 상자에 정수만 허용하는 방법은 무엇입니까?

codestyles 2020. 11. 22. 19:48
반응형

텍스트 상자에 정수만 허용하는 방법은 무엇입니까?


이 질문에 이미 답변이 있습니다.

내 양식에서는 텍스트 상자에만 정수 값 입력을 허용하고 싶습니다. 그렇게하는 방법?


이를 위해 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>

RegularExpressionValidator에는 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 Toolkit을 사용하고 있습니다.

먼저 Ajax Script Manager를 추가하고 아래 코드를 사용하십시오.

<asp:FilteredTextBoxExtender ID="TextBox1_FilteredTextBoxExtender" runat="server"
Enabled="True" TargetControlID="TextBox1" FilterType="Numbers">
</asp:FilteredTextBoxExtender>

쉬운 방법 :-

TextBox onkeydown 속성을 사용하여 값을 숫자로만 제한 할 수 있습니다.

아주 쉽게..:-)

<asp:TextBox ID="TextBox1" runat="server" onkeydown = "return (!(event.keyCode>=65) && event.keyCode!=32);"></asp:TextBox>

! (keyCode> = 65) 확인은 Albphabet을 제외합니다.

keyCode! = 32 검사는 숫자 사이의 공백 문자를 제외하기위한 것입니다 ..


대신 이것을 시도하십시오

참고 : 이것은 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>

또 다른 해결책은 다음 과 같이 설정 하는 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>

MinimumValueMaximumValue속성에 대해서도 합리적인 값을 설정할 수 있습니다 .


단계적으로

다음과 같은 텍스트 상자가 있으면

<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 문은 숫자가 아닌 모든 항목을 제외합니다.


아래와 같이 비교 검증기로 수행 할 수 있습니다. 다른 답변과 달리 이것은 또한 정수 값에 유효한 음수 입력을 허용합니다.

<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/#feat=input-number


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>

클라이언트 측 유효성 검사를 사용할 수 있습니다.

<asp:textbox onkeydown="return (!(event.keyCode>=65) && event.keyCode!=32);" />

더 쉬운 방법은 TextMode속성 을 사용하는 것입니다.

<asp:TextBox runat="server" ID="txtTextBox" TextMode="Number">

자바 스크립트 코드를 사용할 수 있습니다.

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;
}

텍스트 상자로이 코드의 유효성을 검사하십시오.


이 시도 :

<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 이벤트의 입력 텍스트 상자에서이 함수를 호출합니다.


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);" />

허용 키 : Numbers + NumPedNumbers + Tab + ","+ "." + LeftButton + RightButton + Delete + BackSpace


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();                            
    }
}

You might find useful microsoft msdn article How To: Use Regular Expressions to Constrain Input in ASP.NET. Take a look at "Common Regular Expressions" Table. It has validation example for

Non- negative integer

^\d+$

This expression validates that the field contains an integer greater than zero.


User below regular expression validator.

    <asp:RegularExpressionValidator ID="RegularExpressionValidatorNumeric" runat="server" ControlToValidate="yourControl ID" ErrorMessage="Registraion ID Should be a Numeric" ValidationExpression="^\d+$"  ></asp:RegularExpressionValidator>

I would use ASP.NET Ajax Filter TextBoxExtender control

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

반응형