textbox约束输入值问题解答

网上很多关于文本框只能输入数字的,今天又找了一遍,发现以前的写法居然有点问题!

 


onkeypress="if (event.keyCode<48 || event.keyCode>57) event.returnValue=false;"

 

这样写如果用户打汉字,依然可以通过!

 

现在找到了两种写法:拒绝. / ? = + ` ~ 以及汉字(目前测了下,貌似真的只能输入汉字)

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

 

 

onkeyup="this.value=this.value.replace(/\D/g,'')"                 
onafterpaste="this.value=this.value.replace(/\D/g,'')"

 

 <asp:TextBox ID="Label_glfy" Width="80px" runat="server"  Text='' onkeyup='value=value.replace(/[^\d.-]/g,"") '  
                       onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d.-]/g,''))"></asp:TextBox>

上面这个可以输入   正负号    以及    小数点    推荐用这个

 

 

<asp:TextBox ID="txtNeedPage" Width="20px" runat="server" onkeyup='value=value.replace(/[^\d]/g,"") '  

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

                                   ></asp:TextBox>  
<asp:TextBox ID="txtNeedPage" Width="20px" runat="server" onkeyup='value=value.replace(/[^\d]/g,"") '
                                    onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
                                    ></asp:TextBox>

 

或者

<asp:TextBox ID="txtNeedPage" Width="20px" runat="server" onkeyup="this.value=this.value.replace(/\D/g,'')" 
                                onafterpaste="this.value=this.value.replace(/\D/g,'')"
                                    Text="<%#((GridView)Container.Parent.Parent).PageIndex + 1 %>"></asp:TextBox>

 

java里后者说jsp里:

 
<tr>
                            <td>
                                年龄:
                            </td>
                            <td>
                                <input type="text" name="age" id="age_" onkeyup='value=value.replace(/[^\d]/g,"") '
                                 onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"/>
                            </td>
                        </tr>

 

一样实用!

 

C#限制文本框只能输入数字:

 

 if (!(Char.IsNumber(e.KeyChar) || e.KeyChar == '\b'))
            {
                e.Handled = true;
            }

 

txtBox的KeyPress事件!

posted @ 2013-11-18 22:45  Alanblog  阅读(352)  评论(0编辑  收藏  举报