网上很多关于文本框只能输入数字的,今天又找了一遍,发现以前的写法居然有点问题!
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事件!