textbox是在自定义控件group中动态生成的,因为自定义group里面没有封装validate控件,也就不能用正则表达式来做
现在只能把textbox里面的值读出来然后再判断它的格式,请问如何限定textbox中输入的字符是一个整数或者浮点数?

解决方案 »

  1.   

    用JS来写正则。正则我不熟,把你页面从HTML上查看一下,然后找到textboxID的规律,直接写到JS里就可以解决
      

  2.   

    谢谢楼上的!我刚才找到下面这种方式,我先试试,以前用正则表达式都是在expressvalidate空间中直接设置属性。[C#] 
    bool IsValidEmail(string strIn) 

    // Return true if strIn is in valid e-mail format. 
    return Regex.IsMatch(strIn, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"); 
      

  3.   

    var value = document.getElementById("id").value;
    var re = /^\d+(?=\.{0,1}\d+$|$)/
    if(!re.test(value)) 
    {
    alert("数量只能是数字");
    return false;
    }
      

  4.   

    请问是不是JS控制节省服务器资源?
    我现在做的东西页面控件使用xml动态生成的,所以不能用嵌入js来实现!
    谢谢!
      

  5.   

    请问是不是JS控制节省服务器资源? 
    我现在做的东西页面控件使用xml动态生成的,所以不能用嵌入js来实现! 
    谢谢!
      

  6.   

    textbox是在自定义控件group中动态生成的
    这样的话 建议用JS在前台验证,如果提交给后太验证,页面会刷新,达不到用验证控件的效果。function a(txtid)
    {
        var obj=document.getElementById(txtid);//txtid为要验证的TextBox控件id,后台在动态生成这个控件的时候可以用ClientID这个属性获得
         var re=/自己写正则/
        if(re.text(obj))
        {
          alert("错误提示");
        }
    }在后台动态生成TextBox的时候,Attributes.Add("onchange", "a(TextBox的ClientID);");
      

  7.   

    谢谢楼上的耐心解答!
    我们这个项目里面的控件都是动态加载的,包括group,所以在页面里面无法获取group里面的textbox的ID,只有在.cs文件里面继承自定义控件group才可以取到textbox的ID,所以只能在.cs文件里进行验证了。
    但是还是要谢谢你。
      

  8.   

    只要有html代码,就肯定可以使用JS,这和你用什么来生成控件没有关系
    你就直接访问网页的源文件,然后找到你控件的ID,然后写对应的JS就行.
    JS是不会占用服务器端的资源,JS文件是被客户端下载后再由客户端进行解释,和服务器没有任何关系.
      

  9.   

               
                string par=@"^\d+(\.\d+)?$|^\d+$";            string value=控件值;
                MatchCollection maths = Regex.Matches(value, par,RegexOptions.IgnoreCase);
                if (maths.Count == 0)
                {
                    MessageBox.Show("error!");
                }
                else
                {
                    MessageBox.Show("successful!");
                }