87,907
社区成员
发帖
与我相关
我的任务
分享
<html>
<head>
<title>
TD Testing !
</title>
</head>
<SCRIPT language="javascript">
<!--start
/*
* added by LxcJie 2004.6.11
* 约束输入框的内容
* 适用于IE5.0及以上版本
* oObj: 输入框控件对象
* reg: 正则表达式
* isChinese:是否允许打开输入法,true 允许打开,即允许输入中文,false 不能打开,默认为不允许打开
* usage:
*
* //只能输入数字和大小写字母
* <BODY onLoad="regInputRestriction(document.all.txt,/^[0-9a-zA-Z]*$/)">
* <input id="txt">
* </BODY>
*/
function regInputRestriction(oObj,reg,isChinese)
{
function regInput(obj, reg, inputStr)
{
var docSel = document.selection.createRange();
if (docSel.parentElement().tagName.toLowerCase() != "input")
return false;
oSel = docSel.duplicate();
oSel.text = "";
var srcRange = obj.createTextRange();
oSel.setEndPoint("StartToStart", srcRange);
var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length);
return reg.test(str);
}
//限制输入法是否允许打开
if(isChinese == null)
isChinese = false;
if(isChinese)
oObj.style.imeMode = "auto";
else
oObj.style.imeMode = "disabled";
//注册事件,在ie下时注册onkeypress,ff时改为注册onkeydown事件,要不无法获取event的keyCode
if(document.all)
{
oObj.onkeypress=function()
{
return regInput(this,reg,String.fromCharCode(event.keyCode));//输入时激发
}
}
else
oObj.onkeydown = EventHandler; //ff改为onkeydown事件
function EventHandler(e)//===========此为ff的方法
{
e=e||event;
if(e.ctrlKey)//禁止粘贴
return false;
//不为“<-键”,“Delete键”和方向键时
else if(e.keyCode!=8&&e.keyCode!=46&&e.keyCode!=37&&e.keyCode!=38&&e.keyCode!=39&&e.keyCode!=40)
return reg.test(String.fromCharCode(e.keyCode));
}
//下面为ie的方法,在ff下不知道怎么限制
oObj.onpaste = function()
{
return regInput(this,reg,window.clipboardData.getData('Text'));//粘贴时激发
}
oObj.ondrop = function(e)
{
e=e||event;
return regInput(this,reg,event.dataTransfer.getData('Text'));//拖拽时激发
}
}
//-->
</SCRIPT>
<script language="javascript">
function initForm()
{
regInputRestriction(document.getElementById('onlyNumber'),/^[0-9]*$/);
}
</script>
<BODY onLoad="initForm()">
<INPUT id="onlyNumber"> 只能输入数字 <br> <br>
</BODY>
</html>
var docSel;
if(docoment.createRange)//ff和标准2级dom
docSel=document.createRange();
else if(document.selection&&document.selection.createRange)//ie
docSel=document.selection.createRange();