这个问题应该是老生常谈了,但是始终不好解决,有以下需要进行限制:
1、敲击键盘只能输入输入数字;
2、复制的时候也需要删除非数字字符;
3、使用输入法也应该只认数字;
4、在页面中选择一段文字,直接拖拽,也应该能进行筛选;
所以我们需要一个在任何时候只要文本框内容发生变化就触发的事件,来完成上述工作,而不是单纯的onchange事件。
让我们庆幸的是IE中提供一个onpropertychange事件,他可以捕捉到文本框任何文本变化。接下来就简单了,通过这个事件我们就可以定义以下两个方法来处理整形和浮点数的输入限制。
// Int
function CheckInputInt(oInput)
{
if ('' != oInput.value.replace(//d/g,''))
{
oInput.value = oInput.value.replace(//D/g,'');
}
}
//Float
function CheckInputFloat(oInput)
{
if('' != oInput.value.replace(//d{1,}/.{0,1}/d{0,}/,''))
{
oInput.value = oInput.value.match(//d{1,}/.{0,1}/d{0,}/) == null ? '' :oInput.value.match(//d{1,}/.{0,1}/d{0,}/);
}
}
HTML Code: