<asp:textbox id="txtHL" onkeyup="this.value=this.value.replace(/\D/g,'')" runat="server")"></asp:textbox>

解决方案 »

  1.   

    一个是用正则表达式!再一个是再keydown事件里判断啦!
      

  2.   

    这个除了小数点以外都屏蔽掉了,如果只需要整数,那么把第一层判断去掉就可以了,这是windows form用的
    private void TextBox_KeyPress(object sender,System.Windows.Forms.KeyPressEventArgs e)
    {
    if(e.KeyChar.ToString()!=".")
    {
    if (("0123456789.".IndexOf(e.KeyChar.ToString()) == -1) && e.KeyChar != 8) 
    {
    e.Handled = true;
    }
    else
    {
    e.Handled = false;
    }
    }

    }
      

  3.   

    如果是web form用正则表达式,如果是win form,用楼上的
      

  4.   

    if (("0123456789.".IndexOf(e.KeyChar.ToString()) == -1) ) 
    {
    e.Handled = true;
    }
    我糊涂了,请问这里是不是当非数字输入的时候 KeyPress 事件才被处理啊?也就是说非数字才显示?运行只显示数字,刚好相反。怎么错了?
      

  5.   

    用NumericUpDown控件不就行了吗。
      

  6.   

    onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"