62,046
社区成员
发帖
与我相关
我的任务
分享
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.TextBox1.Attributes.Add("onkeyup",@"value=value.replace(/[^\w\u4E00-\u9FA5]/g,'')");
}
}
<body>
<script type="text/javascript">
function regInput(reg)
{
var srcElem = event.srcElement
var oSel = document.selection.createRange()
var srcRange = srcElem.createTextRange()
oSel.setEndPoint("StartToStart", srcRange)
var num = oSel.text + String.fromCharCode(event.keyCode) + srcRange.text.substr(oSel.text.length)
event.returnValue = reg.test(num);
}
</script><input type="text" onKeyPress="regInput(/^[0-9]*$/)" /></form>
这种方法很好用,但是在Firefox不起作用,因为firefox下不识event该事件,当然,你可以参照第二个例子改一下也行.
第二种:
<body>
<script type="text/javascript">
function noNumbers(e)
{
var keynum;
var keychar;
var numcheck;
if(window.event) // IE
{
keynum = e.keyCode;
}
else if(e.which) // Netscape/Firefox/Opera
{
keynum = e.which;
}
keychar = String.fromCharCode(keynum);
numcheck = /\d/;
return !numcheck.test(keychar);
}
</script>
<input type="text" onkeypress="return noNumbers(event)" />
</form>
这个例子只允许输入字母,想改成只输入数字吗?很简单,把
return !numcheck.test(keychar);改成:
return numcheck.test(keychar);即可