如何强制输入数字???在线等。。。

LiuYongSheng 2004-09-20 11:07:35
网页上有一个<input type=text>,我想强制用户输入数字,当然也允许往里面粘贴,
因为受数据库设计的限制,整数部分最多10位,小数部分最多6位,如果输入的数字超出这个范围应该能检测出来,如果是整数部分超出,就把内容清空,如果是小数部分超过,就自动截掉,最好能有代码,等待中!!!!
...全文
274 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你强制键盘输入不就可以了,可以判断键盘的
qyzj 2004-09-20
  • 打赏
  • 举报
回复
function isSpecifyDecimal(str,intLen,speciLen)
{
if (str.length != 0)
{
// is number
if (str.search(/[^0-9.]/g) != -1){
return false;//不是数字
}
var dateArray=str.split(".");
if ((dateArray.length > 2))
{
return false;//有两个'.'
}
else if(dateArray.length == 1){//没有小数点
if(str.length > intLen)//intLen整数位数
return false;//超过整数位数
}
else{//有小数点
if (dateArray[0].length > intLen)
{
return false;
}
if (dateArray[1].length > speciLen)
{
return false;
}

}

}
return true;

}
cxz7531 2004-09-20
  • 打赏
  • 举报
回复
改一下,这样就完美了
function checkIsFloat(){
var nc=event.keyCode;
var tf=document.getElementById('textfield');
var s=tf.value;
if((nc>=48) && (nc<=57) ){
var ndot=s.indexOf('.');
if(ndot!=-1){
if(s.length-ndot>6 ){
event.keyCode=0; return;
}
}else{
if(s.length>=10){
event.keyCode=0;tf.value=''; return;
}
}
}else if(nc==46){
for(var i=0;i<s.length;i++){
if(s.charAt(i)=='.'){
event.keyCode=0; return;
}
}
}else{
event.keyCode=0;return;
}
}


<input type="text" name="textfield" onKeyPress="checkIsFloat();">
LiuYongSheng 2004-09-20
  • 打赏
  • 举报
回复
to numen27(影子):
好像不行,我的小数点也输不上了
cxz7531 2004-09-20
  • 打赏
  • 举报
回复
function checkIsFloat(){
var nc=event.keyCode;
var tf=document.getElementById('textfield');
var s=tf.value;
if((nc>=48) && (nc<=57) ){
var ndot=s.indexOf('.');
if(ndot!=-1){
if((s.length-ndot>6) ||(ndot>10)){
event.keyCode=0; return;
}else if(ndot>10){
tf.value='';
}
}else{
if(s.length>10){
tf.value='';
}
}
}else if(nc==46){
for(var i=0;i<s.length;i++){
if(s.charAt(i)=='.'){
event.keyCode=0; return;
}
}
}else{
event.keyCode=0;return;
}
}



<input type="text" name="textfield" onKeyPress="checkIsFloat();">
LiuYongSheng 2004-09-20
  • 打赏
  • 举报
回复
楼上的,那整数位数和小数位数该如何处理呢?
numen27 2004-09-20
  • 打赏
  • 举报
回复
onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
wcqgm 2004-09-20
  • 打赏
  • 举报
回复
你写一个段代码把它封装起来。
function f_onblur()
{
var re = null;
var reDescription = null;
reDescription = "格式不匹配!";
switch(_render)
{
case "NUMBER": //实数
re = /^[+|-]?([1-9]+[0-9]*|0).*[0-9]+$/g;
break;
case "POSITIVENUMBER": //正整数
re = /^([1-9]+[0-9]*|0)$/g;
break;
case "NEGATIVENUMBER": //负整数
re = /^-([1-9]+[0-9]*|0)$/g
break;
case "REALNUMBER": //实数
re = /^[+|-]?([1-9]+[0-9]*|0).[0-9]+$/g;
break;
case "ENCHAR": //英文字符
re = /^[a-zA-Z]+$/g;
break;
case "CNCHAR": //中文字符
re = /^[^\x00-\x80]+$/g;
break;
case "EMAIL": //电子邮件
break;
case "TEL": //固定电话
re=/^1+2$/g
break;
case "HANDSET": //移动电话
break;
default:
}
  • 打赏
  • 举报
回复
onKeyDown如果没理解我写完整代码好了
ouyld 2004-09-20
  • 打赏
  • 举报
回复
上面的有错误
function bb(){
var a,b,c,d
d=0
a=document.form1.text1.vlaue
c=String(a)
b=a.length
if(a%2==0){
if(a%2==1){
}
}
else{
if(a=="."){
d++
if(c.length<=10){

}
else{
document.alert("不符合标准")
}
}
else{
document.alert("不符合标准")
}
c=String(a)+String(a)
if(c.length<=17){
document.alert("不符合标准")
else{
c=document.form1.text1.vlaue
}
if(d>1){
document.alert("不符合标准")
}
}
abc=setTimeout("bb()",10)
}
<body>
<form name="from1">
<input type="text" name="text1" onfocus="bb()">
</form>
</body>
ouyld 2004-09-20
  • 打赏
  • 举报
回复
或者
<script>
function bb(){
var a,b,c,d
a=document.form1.text1.vlaue
c=String(a)
b=a.length
if(a%2==0){
if(a%2==1){
}
}
else{
if(a=="."){
d++
if(c.length<=10){

}
else{
document.alert("不符合标准")
}
}
else{
document.alert("不符合标准")
}
c=String(a)+String(a)
if(c.length<=17){
document.alert("不符合标准")
else{
c=document.form1.text1.vlaue
}
if(d>1){
document.alert("不符合标准")
}
}
abc=setTimeout("bb()",10)
}
<body>
<form name="from1">
<input type="text" name="text1" onfocus="bb()">
</form>
</body>
ouyld 2004-09-20
  • 打赏
  • 举报
回复
<script>
function aa(){
var a,b,c,d
a=document.form1.text1.value
b=a.length
if(b<=17){
for(c=0,c<=b,c++){
d=c+1
if(a.substr(c,d)%2==0){
if(a.substr(c,d)%2==1){
if(String(d).lenght<=10){
document.alert("符合标准")
}
else{
document.alert("不符合标准")
}
}
else{
if(a.substr(c,d)=="."){
if(a.substr(c,d)%2==0){
if(a.substr(c,d)%2==1){
if(String(d).lenght<=7){
document.alert("符合标准")
}
}
}
}
}
else{
document.alert("不符合标准")
}
}
}
</script>
LiuYongSheng 2004-09-20
  • 打赏
  • 举报
回复
to:

什么叫“强制键盘输入”?怎么做呢?

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧