最近在做jsp动态表格的时候,常常会遇到一些金额、数量等,只能输入数字,问题虽然简单,但是走了一些弯路,在此总结一下。

这个问题有三种解决方案,第一种最适用。

1.使用isNaN()函数

isNaN()的缺点就在于 null、空格以及空串会被按照0来处理,所以需要前面剔除;

NaN: Not a Number

/**
*判断是否是数字
**/

1
2
3
4
5
6
7
8
9
10
11
function isRealNum(val){
    // isNaN()函数 把空串 空格 以及NUll 按照0来处理 所以先去除
    if(val === "" || val ==null){
        return false;
    }
    if(!isNaN(val)){
        return true;
    }else{
        return false;
    }
}           

上段js可以直接引入项目,在需要判断的地方直接调用即可,是最为合理的一种方案!
if (!isRealNum(amount)) {$("#zcsg_yz").html("*<spring:message code='peraseEnter.number'/>");
    $("#zcsg_yz").css("display", "inline");
    tds.eq(3).children().val('');
    return;
}

2.设置input的type属性为“number”,此种方法虽然可以达到目的,但是存在着两个问题;

<1>之前给input设置的

maxlength="20"

不起作用了,也就是说你控制的最大值可以通过min、max 和 step 属性去设置

注:min、max 和 step 属性用于为包含数字或日期的 input 类型规定限定(约束)。 max 属性规定输入域所允许的最大值。 min 属性规定输入域所允许的最小值。 step 属性为输入域规定合法的数字间隔(如果 step="3",则合法的数是 -3,0,3,6 等)。

<2>样式问题

在input的最右边会产生两个上下箭头,点击箭头数字会加减,由于样式与表格不搭,所有没有采用;

3.正则表达式验证

这种也可以,具体的js为:

var price = tds.eq(2).children().val() - 0;
if (price == "" || price == null) {price = 0;
}
var pattern = /^[0-9]+(.[0-9]{0,3})?$/;
if (!pattern.test(price)) {$("#zcsg_yz").html("*请输入数字");
    $("#zcsg_yz").css("display", "inline");
    tds.eq(2).children().val('');
    return;
}

然后在input里面加onkeyup、onkeydown事件调用。

但是在实际过程中,做了这种校验后,当我输入121.的时候,会校验失败,这也就是我最后用第一种的原因。

以上纯手打,如有不当之处,烦请指正!

关于input文本框只能输入数字的几种实用方法!!!相关推荐

  1. input文本框只能输入数字

    表单验证 文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace(/\D/g,'')" ona ...

  2. 正则表达式限制文本框只能输入数字,小数点,英文字母,汉字

    1.文本框只能输入数字代码(小数点也不能输入) <input οnkeyup="this.value=this.value.replace(/\D/g,'')" onafte ...

  3. php验证数字100倍数,js如何实现一个文本框只能输入数字 且是100的倍数

    js如何实现一个文本框只能输入数字 且是100的倍数? php var a = 123,b = 200; /\d/.test(a) && a % 100 == 0;//false /\ ...

  4. 转如何限制文本框只能输入数字,小数点,英文,汉字等各类代码

    1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace(/D/g,'')" onafter ...

  5. 文本框只能输入数字代码

    1.文本框只能输入数字代码(小数点也不能输入) <input οnkeyup="=.replace(/\D/g,'')" onafterpaste="=.repla ...

  6. 正则表达式限制文本框只能输入数字

    许多时候我们在制作表单时需要限制文本框输入内容的类型,下面我们用正则表达式限制文本框只能输入数字.小数点.英文字母.汉字等各类代码. 1.文本框只能输入数字代码(小数点也不能输入)     <i ...

  7. js正则表达式限制文本框只能输入数字,小数点,英文字母

    1.文本框只能输入数字代码(小数点也不能输入) <input οnkeyup="this.value=this.value.replace(/\D/g,'')" onafte ...

  8. C# 文本框只能输入数字

    用正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等各类代码(转)_迦南美地_百度空间 http://hi.baidu.com/canaan1985/item/ef553f1f0c4b26ff ...

  9. 键盘事件实现文本框只能输入数字效果

    内容简介 键盘事件实现文本框只能输入数字效果 代码实战 function checkNum(e){var e=e||window.event;//兼容所有浏览器alert(e.target.tagNa ...

最新文章

  1. Quartz-JobListener解读
  2. python 状态码转字典文本_python爬虫 处理521状态码
  3. springboot 单测加入参数_Spring Boot集成Elasticsearch实战分享
  4. Mathematica开方语法
  5. 英国汇丰银行拒绝为客户处理加密货币交易
  6. MySQL双主(master-master)补充
  7. SoftPAC 虚拟控制器漏洞使 OT 网络易受攻击
  8. python从入门到放弃 图-python从入门到放弃(二)
  9. linux的打包压缩文件,linux打包文件,压缩文件
  10. Win11如何进行重置电脑初始化
  11. 洛谷P5369 [PKUSC2018]最大前缀和 [DP]
  12. 百度网盘简易下载工具介绍
  13. 爱莫完成A+轮融资,打造基于实体零售数据引擎的Metachain Store平台
  14. webapp新建文件没有JSP问题和IDEA中web.xml的<servlet-name>名字一样还飘红的问题
  15. WEB前端优化之内容篇
  16. java没错泄露_记一次尴尬的Java应用内存泄露排查
  17. Python-读取并显示图片
  18. 一篇学完:GAMES101:现代计算机图形学入门 学习笔记
  19. mysql ocp 认证 题库_MySQL 8 OCP(1Z0-908)认证考试题库原题(第12题)
  20. 谷歌浏览器自动升级关闭小方法

热门文章

  1. 多目标跟踪算法简述——量测-航机关联
  2. flutter 中使用 WebView加载H5页面异常net:ERR_CLEARTEXT_NOT_PERMITTED
  3. BmS电池管理系统源码,包括源理图,BOM,源码
  4. Logistic 分类器与 softmax分类器
  5. 汽车之家汽车品牌Logo信息抓取 DotnetSpider实战[三]
  6. flutter ThemeData的使用 屏幕适配方案rpx px
  7. mp4格式视频因为录制到一半断电,导致损坏能修复
  8. 华为5g服务器硬件供应商,华为P50系列硬件供应商名单曝光,国产化程度高,5G版或延后上市...
  9. 激光切割机软件开发如何补充参数
  10. 开发板做什么用? 开发板的分类有哪些呢?