// -1)
return false;

return index == 0
}

keychar = String.fromCharCode(keynum)
var newVal = oriVal.substr(0, index) + keychar + oriVal.substr(index, oriVal.length - index);
console.log(newVal)
var pattern = /^([-]){0,1}([0-9]){1,}([.]){0,1}([0-9]){0,}$/;
return pattern.test(newVal);
}
// ]]>

<script type="text/javascript">

//获取当前光标位置

function getCursortPosition(ctrl) {

var CaretPos = 0;   // IE Support

if (document.selection) {

ctrl.focus();

var Sel = document.selection.createRange();

Sel.moveStart('character', -ctrl.value.length);

CaretPos = Sel.text.length;

}

// Firefox support

else if (ctrl.selectionStart || ctrl.selectionStart == '0')

CaretPos = ctrl.selectionStart;

return (CaretPos);

}

//只录入浮点数

function onlyNumbers(e) {

var keynum

var keychar

var numcheck

if (window.event) // IE

{

keynum = e.keyCode

}

else if (e.which) // Netscape/Firefox/Opera

{

keynum = e.which

}

//Backspace Left Right Delete Key 直接放过

if (keynum == 8 || keynum == 37

|| keynum == 39 || keynum == 46)

{

return true;

}

//减号

var minusCharCode = 189;

//点

var pointCharCode = 190;

var inputCtrl = document.getElementById("mc");

var index = getCursortPosition(inputCtrl);

var oriVal = inputCtrl.value;

if (keynum == pointCharCode)

{

return oriVal.indexOf(".") == -1;

}

if (keynum == minusCharCode)

{

if (oriVal.indexOf("-") > -1)

return false;

return  index == 0

}

keychar = String.fromCharCode(keynum)

var newVal = oriVal.substr(0, index) + keychar + oriVal.substr(index, oriVal.length - index);

console.log(newVal)

var pattern = /^([-]){0,1}([0-9]){1,}([.]){0,1}([0-9]){0,}$/;

return pattern.test(newVal);

}

</script>

调用方法:

<div id="wrap">         数值:<input id="mc" onkeydown="return onlyNumbers(window.event)"/>

</div>

JS onkeydown控制HTML Input 只录入浮点数值的更多相关文章

  1. JS可控制的图片自动循环播放查看效果

    JS可控制的图片自动循环播放查看效果 <html> <head> <title>JS可控制的图片自动循环播放查看效果丨芯晴网页特效丨CsrCode.Cn</t ...

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

    本文介绍两种控制在<input type="text" name="name" value="0" />中只允许输入数字和小数点 ...

  3. 用JS实现控制浏览器F12与右键功能

    本文出至:新太潮流网络博客 用JS实现控制浏览器F12与右键功能,防止恶意窃取代码,或其他直接复制进去就好 //禁用右键 document.oncontextmenu = function () { ...

  4. 在IE中,JS方法名和input的name重名时,调用该方法无效

    在IE中,JS方法名和input的name重名时,调用该方法无效.提示:网页错误详细信息 用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1 ...

  5. vue用js部分控制动画实现

    上次我们提到用vue实现过渡动画,其实只讲了vue动画的一部分,用vue自带的css状态控制动画实现,不带js http://www.cnblogs.com/null11/p/7081506.html ...

  6. JS 正则表达式 控制文本框只能输入中文、英文、数字与指定特殊符号

    JS 正则表达式 控制文本框只能输入中文.英文.数字与指定特殊符号(屏蔽表情输入) onkeyup:释放键盘事件 onpaste:粘贴事件 oncontextmenu :鼠标右击事件 只能输入中文: ...

  7. js 实时监听input中值变化

    注意:用到了jquery需要引入jquery.min.js. 需求: 1.每个地方需要分别打分,总分为100; 2.第一个打分总分为40; 3.第二个打分总分为60. 注意:需要判断null.&quo ...

  8. [转载]Js小技巧||给input type=“password”的输入框赋默认值

    http://www.cnblogs.com/Raywang80s/archive/2012/12/06/2804459.html [转载]Js小技巧||给input type="passw ...

  9. javascript限制input只允许输入数字

    在做数据提交的表单时,经常要对input输入内容的类型进行限制,譬如javascript限制input只允许输入数字,最好的方法当然是使用javascript,因为它不用与服务器交互,大大减轻了服务器 ...

随机推荐

  1. LInux 下挂在Windows共享文件夹

    挂载WIndow共享文件夹  //192.168.0.103/software mount -t smbfs -o username=administrator,password=“de123”  / ...

  2. 【LeetCode练习题】Copy List with Random Pointer

    Copy List with Random Pointer A linked list is given such that each node contains an additional rand ...

  3. hdu 5501 The Highest Mark(贪心+01背包)

    题意:类似cf的赛制,每道题目有A,B,C三个值,A表示初始分数,B表示每分钟题的分数会减少B,C表示做这道题需要C分钟,数据保证分数不会变为负数.现在给出比赛时长,问安排做题的顺序,求最大得分. 思 ...

  4. fseek/ftell/rewind/fgetpos/fsetpos函数使用-linux

    程序: #include<stdio.h> int main(int argc,char *argv[]) { FILE * stream; fpos_t pos; stream = fo ...

  5. ZCTF-final-restaurant1

    和线上赛的题目差别不大,但是需要自己去泄露堆的地址.除了线上赛的溢出之外,还多了一个Use After Free的洞.我写了两种利用方法. 线上赛writeup见:http://www.cnblogs ...

  6. ChartConlrol二维图表类型

    WinForms Controls >Controls > Chart Control > Concepts > Creating Charts > 2D Chart T ...

  7. MVC零基础学习整理(一)

    1.Mvc程序的启动页的设置:修改程序的Global.asax文件

  8. 在一个apk中调用另外一个apk中的activity

    今天忽然想到如果要在一个activity中调用另外一个activity该怎么办呢? 感觉这个应该比较简单,应为activity的启动方式就两种:显式启动.隐式启动: 显式启动的话肯定不行,那就只能使用 ...

  9. html form表单提交数据并后台获取

    前台: HTML的代码:(关键是要在form里设置enctype="multipart/form-data",这样才能在提交表单时,将文件以二进制流的形式传输到服务器) <h ...

  10. hdu 4710 Balls Rearrangement

    题意就不说了,刚开始做我竟然傻傻地去模拟,智商捉急啊~~超时是肯定的 求出 a ,b 的最小公倍数,因为n够长的话,就会出现循环,所以就不要再做不必要的计算了.如果最小公倍数大于n的话,就直接计算n吧 ...