下面代码实现限制只能是数字型,enableDot 表示是否可以有.出现(即有小数位)
但不能实现覆盖输入,即选中某段字符后,不能用新的字符给替换掉,如何解决?
/*
函数实现输放框内只能输入数字型字符
enableDot 表示是否可以有.出现
*/
function retNum(keyCode,inputValue,maxNum,enableDot)
{
var nextNum;
if ((keyCode>=48&&keyCode<=57)||keyCode==46)
{
//
if(!enableDot && keyCode==46) return false;
if (inputValue!=null)
{
if (inputValue.indexOf(".")!=-1&&keyCode==46) return false;
}
if (keyCode!=46)
{
nextNum = inputValue + String.fromCharCode(keyCode);
if (parseFloat(nextNum)>maxNum) return false;
}
}
else
{
return false;
}
}
但不能实现覆盖输入,即选中某段字符后,不能用新的字符给替换掉,如何解决?
/*
函数实现输放框内只能输入数字型字符
enableDot 表示是否可以有.出现
*/
function retNum(keyCode,inputValue,maxNum,enableDot)
{
var nextNum;
if ((keyCode>=48&&keyCode<=57)||keyCode==46)
{
//
if(!enableDot && keyCode==46) return false;
if (inputValue!=null)
{
if (inputValue.indexOf(".")!=-1&&keyCode==46) return false;
}
if (keyCode!=46)
{
nextNum = inputValue + String.fromCharCode(keyCode);
if (parseFloat(nextNum)>maxNum) return false;
}
}
else
{
return false;
}
}
<input id="inp2" type="text" value="9876543210">
<input type="button" onclick="test()" value="确定">
<script language="javascript">
function test()
{
var r = document.selection.createRange();
r.text = 5;
}
</script>