<SCRIPT LANGUAGE="JavaScript">
<!--
function test(obj){
var reg = /^[\d]*(\.)?[\d]{2}$/gi;
var str = obj.value;
if( !reg.test(str) ){
alert("请输入数字,小数点后带2位");
return false;
}
}
//-->
</SCRIPT>
<input type=text style="ime-mode: disabled ; " onchange="test(this);"> //style="ime-mode: disabled ; "禁止调用输入法
<!--
function test(obj){
var reg = /^[\d]*(\.)?[\d]{2}$/gi;
var str = obj.value;
if( !reg.test(str) ){
alert("请输入数字,小数点后带2位");
return false;
}
}
//-->
</SCRIPT>
<input type=text style="ime-mode: disabled ; " onchange="test(this);"> //style="ime-mode: disabled ; "禁止调用输入法
style="ime-mode: disabled ; "禁止调用输入法只适用IE,且不能阻止用户粘帖~~~
效果是有的, 我知道你的意思, 你是想不然用户输入字母, 对吧?
那就这样吧:
function onkeypress()
{
var currentKey = String.fromCharCode(event.keyCode);
if(!currentKey.match(/[\d\.]/)) {
event.returnValue = false;
return;
}
var documentTextRange = document.selection.createRange();
var selectionLength = documentTextRange.text.length;
documentTextRange.moveStart("textedit", -1);
var currentLength = documentTextRange.text.length;
var preText = documentTextRange.text.substr(0, currentLength-selectionLength); documentTextRange = document.selection.createRange();
documentTextRange.moveEnd("textedit", 1);
currentLength = documentTextRange.text.length;
var endText = documentTextRange.text.substr(selectionLength, currentLength-selectionLength); var valueToMatch = preText+currentKey+endText;
if(!valueToMatch.match(/^\d{0,}(\.\d{0,}$|$)/)) {
event.returnValue = false;
}
}试试看吧, 不过要阻止中文输入法的话, 不好做, ie下好办, 可是其他的不好, 不如加上, onblur在做整个的判断一下, 问题就解决啦
这样就行了
<script language="javascript">
function KeyPress(objTR)
{//只允许录入数据字符 0-9 和小数点
//var objTR = element.document.activeElement;
var txtval=objTR.value;
var l=objTR.value.length;
var key = event.keyCode;
if((key < 48||key > 57)&&key != 46)
{
event.keyCode = 0;
}
else
{
if(key == 46)
{
if(txtval.indexOf(".") != -1||txtval.length == 0)
{
event.keyCode = 0;
}
}
}
if(txtval.indexOf(".") != -1)
{
var decimalPart=txtval.substring(txtval.indexOf(".")+1,l);
if(decimalPart.length>=2)
{
event.keyCode = 0;
}
}
}
</script>
<tr>
<td height="30" align="right">金额:</td>
<td><input type="text" name="Price" style="width:200px" onKeyPress="javascript:KeyPress(this);"><font color="#666666">元</font></td>
</tr>
{
//判断是否为浮点数
len=theFloat.length;
dotNum=0;
if (len==0)
return true;
for(var i=0;i<len;i++){
oneNum=theFloat.substring(i,i+1);
if (oneNum==".")
dotNum++;
if ( ((oneNum<"0" || oneNum>"9") && oneNum!=".") || dotNum>1)
return true;
}
if (len>1 && theFloat.substring(0,1)=="0"){
if (theFloat.substring(1,2)!=".")
return true;
}
return false;
}
function BASEisNotNum(theNum)
{
//判断是否为数字
if (theNum=="")
return false;
for(var i=0;i<theNum.length;i++){
oneNum=theNum.substring(i,i+1);
if (oneNum<"0" || oneNum>"9")
return true;
}
return false;
}