<HTML> <HEAD> <TITLE></TITLE> <script language=javascript> function fmt(obj){ obj.value = (obj.value != "")?fmtNumber(obj.value*1, 2):"" } function numCheck(obj) { var s = String.fromCharCode(event.keyCode) if (s == ".") { if (obj.value.indexOf(".")>-1) return false else return true } if (s=="-") { if (obj.value.indexOf("-")>-1) return false
if (getCurPosition(obj)!=0) { return false } else return true }
return !isNaN(s) } //some code from meizz's files function getCurPosition(obj) { var len = obj.value.length var pos = 0 var rng=document.selection.createRange(); rng.moveEnd("character",len); try{ pos=len-rng.text.length }catch(e){} return pos } </script> <script language="VBScript"> Function fmtNumber(num, n) fmtNumber = FormatNumber(num, n, 0, 0, 0) End Function </script> </HEAD> <BODY> <input name="txt1" value="" style="ime-mode:disabled" onfocusout=fmt(this) onkeypress="return numCheck(this)"></BODY> </HTML>====CSDN==== 人生起起伏伏凑字凑
在onkeypup事件判断是很难的,因为数字输入是逐步输入的,不是一下子进去的,包括数字、小数点、正负号,而且小数点和正负号还有位置和数量的限制。 比如我开始时输入一个负号,虽然不是个数字,但谁敢说我错误?后面的我还没输入呢。应该在onblur中用正则判断,或者isNaN判断 var reg=/^(\+|\-)?\d+(\.\d+)?$/g;
假設對於一個<input type="text"進行控制
<script language=javascript>
function check(e){
var num=e.value;
re=/^(([1-9]\d*(\.\d+)?)|(0\.\d*))$/; //如果你要有0的话把这句改下re=/^(([1-9]\d*(\.\d+)?)|(0\.\d*)|0)$/;
if(re.test(num))
{
alert("正确")
}
else
{
alert("错误")
}
}
</script>
<input name=num onblur=check(this)>
onblur, ondrop 等等細節事件的網站
你說的是什么意思??
<HEAD>
<TITLE></TITLE>
<script language=javascript>
function fmt(obj){
obj.value = (obj.value != "")?fmtNumber(obj.value*1, 2):""
}
function numCheck(obj)
{
var s = String.fromCharCode(event.keyCode)
if (s == ".")
{
if (obj.value.indexOf(".")>-1)
return false
else
return true
}
if (s=="-")
{
if (obj.value.indexOf("-")>-1)
return false
if (getCurPosition(obj)!=0)
{
return false
}
else
return true
}
return !isNaN(s)
}
//some code from meizz's files
function getCurPosition(obj)
{
var len = obj.value.length
var pos = 0
var rng=document.selection.createRange();
rng.moveEnd("character",len);
try{
pos=len-rng.text.length
}catch(e){}
return pos
}
</script>
<script language="VBScript">
Function fmtNumber(num, n)
fmtNumber = FormatNumber(num, n, 0, 0, 0)
End Function
</script>
</HEAD>
<BODY>
<input name="txt1" value="" style="ime-mode:disabled" onfocusout=fmt(this) onkeypress="return numCheck(this)"></BODY>
</HTML>====CSDN====
人生起起伏伏凑字凑
比如我开始时输入一个负号,虽然不是个数字,但谁敢说我错误?后面的我还没输入呢。应该在onblur中用正则判断,或者isNaN判断
var reg=/^(\+|\-)?\d+(\.\d+)?$/g;