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

时间:2011-12-08 10:37:16

标签: javascript asp.net

我在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>

现在我想编写JavaScript代码以在我的文本框上进行验证,当我点击按钮时,该代码可以正常工作。 现在我想知道如何在按钮中调用JavaScript的功能 该功能应该像是一样工作 按钮应该发送文本框值到函数和函数应该只检查值为整数。如果没有找到,则应在对话框中给出错误消息“请输入整数值”。

我正在尝试这样的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;
      }

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

使用&lt; asp:CustomValidator /&gt;对此。

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

您的验证功能如下所示:

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

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

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

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

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

答案 2 :(得分:1)

你不能像var control = $("#<%= txtMyControl.ClientID %>"); return control;一样使用 ??然后做标准验证??