/**获取组件选中的内容  */
function getSelectText(obj) {if (window.getSelection) {if (obj.selectionStart != undefined && obj.selectionEnd != undefined) {return obj.value.substring(obj.selectionStart, obj.selectionEnd);} else {return "";}} else {return document.selection.createRange().text;}
}/**只能输入数字*         |--> 参数:*             |--> e:event*            |--> maxLength:总长度最大值*           |--> precision: 精度*              |--> isNegativeNum: 是否可以输入负数(默认可以)*/
function noNumbers(e, maxLength, precision, isNegativeNum) {var keynum;var keychar;var numcheck;/*FireFox、Opera、Chrome  事件对应的函数有一个隐藏的变量e,表示发生事件。 e有一个属性e.which指示哪个键被按下,给出该键的索引值(按键码)。IE只有keyCode属性,FireFox中有which和charCode属性,Opera中有keyCode和which属性,Chrome中有keyCode、which和charCode属性。*/if (window.event) {  //IE不需要e变量,window.event表示发生事件。keynum = e.keyCode;} else if (e.which) {keynum = e.which;}keychar = String.fromCharCode(keynum);//静态函数String.fromCharCode()可以把索引值(按键码)转化成该键对应的的字符。if (" " == keychar) {return false;}var currentSelectValue = e.currentTarget.value;// 判断是数字,且小数点后面只保留precision位小数if (!isNaN(keychar)) {   //isNaN() 函数用于检查其参数是否是非数字值。非数字值为truevar index = currentSelectValue.indexOf(".");if (index >= 0 && currentSelectValue.length - index > precision) {var selectValue = getSelectText(e.currentTarget);if(selectValue && currentSelectValue.indexOf(selectValue) > -1){return true;}var cursorPosition = getCursorPosition(e.currentTarget);if(cursorPosition <= index){//判断整数位长度var integerLength = maxLength - precision;if(index >= integerLength){return false;}return true;}return false;}var selectValue = getSelectText(e.currentTarget);//有组件选中时,一不会超出长度if(selectValue && currentSelectValue.indexOf(selectValue) > -1){return true;}var maxLength_new = maxLength;if (currentSelectValue.indexOf(".") >= 0) {maxLength_new++;}//判断没有点,总长度大于等于最大值if(currentSelectValue.indexOf(".") < 0 && currentSelectValue.length >= maxLength_new-precision){return false;}return true;}// 如果是负号 但不能出现多个 且只能第一位是负号if ("-" == keychar) {if (currentSelectValue != "") {return false;}if(isNegativeNum) {return false;}if (currentSelectValue.indexOf("-") >= 0) {return false;}return true;}// 如果是小数点 但不能出现多个 且第一位不能是小数点    if ("." == keychar) {if(precision == 0) {return false;}if (currentSelectValue == "") {return false;}if (currentSelectValue.indexOf(".") >= 0) {return false;}//小数点插入时的处理var cursorPosition = getCursorPosition(e.currentTarget);if(currentSelectValue.length - cursorPosition > precision){e.currentTarget.value = currentSelectValue.substring(0,cursorPosition)+"."+currentSelectValue.substring(cursorPosition,precision+cursorPosition);return false;}return true;}return false;
}
/** 获取光标的位置 */
function getCursorPosition(obj){var cursurPosition=-1;if(obj.selectionStart){//非IE浏览器cursurPosition= obj.selectionStart;}else{//IEvar range = document.selection.createRange();range.moveStart("character",-obj.value.length);cursurPosition=range.text.length;}return cursurPosition;
}

html javaScript 只能输入数字相关推荐

  1. JS只能输入数字和小数点

    javascript 替换函数全部替换方法 <script language="javascript"> var strM = "javascript is ...

  2. 用 JavaScript 验证只能输入数字,并做数字加总

    开发系统时,常会需要将使用者在多个 TextBox 中输入的数字,做加总的计算,此时必须验证使用者只能输入数字.如下图 1 所示,有时可能还需要用 JavaScript 做数字的实时加总计算,并将计算 ...

  3. [转]JavaScript:只能输入数字(IE、FF)

    本文转自:http://www.cnblogs.com/ly5201314/archive/2009/03/04/1402993.html JavaScript:只能输入数字(IE.FF) 为了解决只 ...

  4. javascript实现文本框只能输入数字和字母

    以前曾经用javascript写过验证文本框只能输入小数(需要保留两位小数点)的例子,记得主要是通过判断eventkey或evencode来实现的,最经接手别人的项目要增加对文本框进行验证,只能输入数 ...

  5. php文本输入数字,JavaScript实现文本框只能输入数字的方法介绍

    在我们日常开发中,为了更好的给用户带来体验,我们有的时候需要限制文本框输入内容的类型,这里我们很多时候都会使用到正则表达式来完成,今天我们就给大家介绍下JavaScript实现文本框只能输入数字.小数 ...

  6. 【 javascript】<input> 实现输入框只能输入数字(个人认为最好的)

    <input> 实现输入框只能输入数字 需求背景: 方案一:使用`JS`限制 input 输入框只能输入纯数字 方案二:`VUE`使用`a-input-number组件`限制 input ...

  7. js只能输入数字,小数点(整理)

    <html> <head> <meta http-equiv="content-Type" content="text/html;chars ...

  8. js控制只能输入数字和小数点

    非常好用,代码示例如下: <input  onkeypress = "return event.keyCode>=48&&event.keyCode<=57 ...

  9. 控制HTML Input只能输入数字和小数点

    转:https://www.cnblogs.com/esion/p/3342866.html 本文介绍三种控制在中只允许输入数字和小数点的方案. 方案1:通过JavaScript代码实现. JavaS ...

最新文章

  1. ado.net操作数据库常用方法集锦
  2. linux磁盘空间清理
  3. 教务处管理系统c语言编程,基于C语言的教务管理系统的设计
  4. 【转】ABAP的坑2
  5. 广联达2018模板算量步骤_广联达GTJ2021操作教程:造价小白3天速成,计量效率翻倍...
  6. 熟悉linux系统内核,[科普] Linux 的内核与 Linux 系统之间的关系
  7. 管理软件公司与互联网公司的区别
  8. Docker垃圾清理方案
  9. iOS开发UI篇—Quartz2D使用(矩阵操作)
  10. PrintWrite
  11. 【深度学习-花书】第二章 线性代数
  12. 手机腾讯视频离线缓存ts格式文件合并为完整视频
  13. Cisco ❀ QinQ技术与VXLAN技术的区别
  14. MATLAB 中跳出if条件判断
  15. 年终固定资产盘点报告可一键生成
  16. win10连接android手机助手下载,完美Win10手机助手电脑版
  17. java fx 内置图标_DOC-05-01 使用内置的布局面板
  18. c8网络语言意思,老外常用的网络英文缩写
  19. 题解 CF133A 【HQ9+】
  20. ORB_原理与源码解析

热门文章

  1. 是否会回到起点.回忆只能是回忆
  2. Qt 提取文件(exe, dll等)中的图标icon
  3. 暴涨!BTC忠实粉丝转向BCH为BCH网络添砖加瓦
  4. 谷歌将比特币现金汇率纳入货币信息搜索
  5. 机房网络光纤扩容施工
  6. mailx(mail)配置outlook SMTP方式发送邮件
  7. Spring学习(五)——Spring注解(一)
  8. 数据结构——堆(转载)
  9. cPanel之EasyApache (Apache Update)的使用
  10. CuteEditor 4.0.7研究