javascript asp.net中文本框的javascript验证

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/8429611/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-26 03:25:31  来源:igfitidea点击:

javascript validation of textbox in asp.net

javascriptasp.net

提问by Raja

I have one text box and button in asp.net like

我在 asp.net 中有一个文本框和按钮

<tr>
<td style="width: 100px">
 <asp:Label ID="lbltime" runat="server" Text="Enter Time"></asp:Label>
</td>
  <td style="width: 100px">
  <asp:TextBox ID="Txttime" onkeypress="return isNumberKey(event)" runat="server"></asp:TextBox>
</td>         
 </tr>
<tr>
  <td style="width: 100px" align="center">
  <asp:Button ID="Btntime" runat="server" Text="Button" />
  </td>
</tr>

Now I want to write JavaScript code to validate on my textbox which work when I click on button. Now I want to know how to call function of JavaScript in button and the function should do work like is button should send the text box value to the function and function should check the value to integer number only. And if not found should give the error message in the dialog box that "please enter value in integer only".

现在我想编写 JavaScript 代码来验证我的文本框,当我点击按钮时它会起作用。现在我想知道如何在按钮中调用 JavaScript 的函数,该函数应该像按钮应该将文本框值发送给函数一样工作,函数应该只将值检查为整数。如果未找到,则应在对话框中给出“请仅输入整数值”的错误消息。

I'm trying the JavaScript like this:

我正在尝试这样的 JavaScript:

function isNumberKey(textboxvalue)
      {
          evt=textboxvalue.text;
         var charCode = (evt.which) ? evt.which : event.keyCode
         if (charCode > 31 && (charCode < 48 || charCode > 57))
            textboxvalue.text="Enter in Integer Only";
            return false;

         return true;
      }

回答by James

ASP.NET has built-in validation controls that are able to cope with things like this:

ASP.NET 有内置的验证控件,可以处理这样的事情:

http://msdn.microsoft.com/en-us/library/aa479013.aspx

http://msdn.microsoft.com/en-us/library/aa479013.aspx

In addition, make sure you don't rely on client-side validation only - check for an integer on the server-side, and reject the input if it isn't an integer.

此外,请确保您不只依赖客户端验证 - 检查服务器端的整数,如果不是整数则拒绝输入。

回答by slfan

Use an <asp:CustomValidator/> for this.

为此使用 <asp: CustomValidator/>。

<asp:CustomValidator id="CustomValidator1"
       ControlToValidate="myTextbox"
       ErrorMessage="Enter Integer only!"
       OnServerValidate="ServerValidation"
       OnClientValidate="isNumberKey"
       runat="server"/>

Your validation function looks like this:

您的验证函数如下所示:

function isNumberKey(oSrc, args) {
{
     evt=textboxvalue.text; 
     var charCode = (evt.which) ? evt.which : event.keyCode 
     if (charCode > 31 && (charCode < 48 || charCode > 57)) 
        args.isValid = false; 

     args.IsValid = true; 
}

If you just want to check the data type, you can use a CompareValidator:

如果只想检查数据类型,可以使用 CompareValidator:

<asp:CompareValidator id="CompareValidator1" 
         runat="server" ErrorMessage="Enter Integer only!" Operator="DataTypeCheck"
         ControlToValidate="Txttime" Type="Integer" />

The validators check on the client side if JavaScript is available AND on server side. All JavaScript will be generated for you. On the server, you always have to check, whether your page is valid or not:

验证器在客户端检查 JavaScript 是否可用并且在服务器端检查。将为您生成所有 JavaScript。在服务器上,您必须始终检查您的页面是否有效:

protected void OnButtonClick(object sender, EventArgs e)
{
  if (Page.IsValid)
  {
     ... // do your work on the server
  }
}

回答by MjolTonir

Can you not use like var control = $("#<%= txtMyControl.ClientID %>"); return control;?? then do standard validation ??

不能用like var control = $("#<%= txtMyControl.ClientID %>"); return control;吗??然后做标准验证??