我把TextBox的值用RegularExpressionValidator  控制了它,正侧表达式为\d.  但是在运行程序时,当我输入字母时
strmsize=int.Parse(menuSize.Text);
strsize=int.Parse(txtSize.Text);这两行就报错请问是怎么回事啊?应该怎么控制 ,不用这个控件,在代码里面怎么控制 ?`

解决方案 »

  1.   

    strmsize=int.Parse(menuSize.Text);
    这语句你得保证 menuSize.Text是数值
    如果是字母当然报错了
      

  2.   

    用正则表达式
    或者自己在menuSize的onchange事件作判断阿
    读取每个字符 判断
      

  3.   

    如果用验证控件它应该是在客户端进行验证啊,你的怎么都到服务器了?是不是没有指定严整的控件啊,把RegularExpressionValidator的ControlToValidate属性设置成对应的TextBox,一个验证控件只能对一个TextBox进行验证啊
      

  4.   

    给textbox加onkeyup属性
    onkeyup="value=value.replace(/[^\d]/g,'')"
      

  5.   

    strmsize=int.Parse(menuSize.Text);  
    我输入字符串时,就报,字符串格式不正确`
      

  6.   

    <asp:TextBox onkeypress="return ((event.keyCode>47 &amp;&amp; event.keyCode<58)||(event.keyCode == 46));" id=aaa runat="server" Width="179px" Text='aa' MaxLength="7">
    </asp:TextBox>
      

  7.   

    <input onChange="value=value.replace(/[^\d]/g,'')" >
      

  8.   

    正则表达式啊
    // 
    function _MaskInput(oInput, sReg, sInputStr)
    {
    var re = new RegExp(sReg);
    var docSel = document.selection.createRange();
    if(docSel.parentElement().tagName.toLowerCase() != "input")
    return false;
    oSel = docSel.duplicate();
    oSel.text = "";
    var srcRange = oInput.createTextRange();
    oSel.setEndPoint("StartToStart", srcRange);
    var str = oSel.text + sInputStr + srcRange.text.substr(oSel.text.length);
    //alert(str);
    //alert(re.test(str));
    return re.test(str);
    }
    // only number
    //bSign 是否可以输入负号
    //nInt  小数点前的位数   nDec 小数点后的位数
    //oInput 要求验证的TextBox名称
    function _SetDigitalInput(oInput,nInt,nDec,bSign)
    {
    if(typeof(bSign) != "boolean")
    bSign = false;
    oInput.style.imeMode = "disabled";
    var sReg = "^";
    if(bSign)
    sReg += "-?(";
    sReg += "\\\\d{1,"+nInt.toString()+"}";
    if(nDec > 0)
    sReg += "(\\\\.\\\\d{0,"+nDec.toString()+"})?";
    if(bSign)
    sReg += ")?";
    sReg += "$";
    oInput.onkeypress = new Function("return _MaskInput(this,'"+sReg+"',String.fromCharCode(event.keyCode))");
    oInput.onpaste = new Function("return _MaskInput(this,'"+sReg + "',window.clipboardData.getData('Text'))");
    oInput.ondrop = new Function("return _MaskInput(this,'"+sReg + "',event.dataTransfer.getData('Text'))");
    }
      

  9.   

    示范
    <input type="text" style="width:75px" onkeypress="_SetDigitalInput(this,5,0,false)">
    <!--
    只可以输入长度不超过5的整型
    -->