日期:2014-05-16 浏览次数:20377 次
<input id="txt1" type="text"/> <script> var input = document.getElementById('txt1'); input.onkeydown = function(e){ var evt = e || event; var keyCode = evt.which || evt.keyCode; var isBack = keyCode == 8; var isEnter = keyCode == 13; var isDel = keyCode == 46; var isNum = ( (keyCode >= 96 && keyCode <= 105) //小键盘区数字键 || (keyCode >= 48 && keyCode <= 57 ) //大键盘区数字键 ); //若为数字、回车、删除、退格允许输入,否则禁止 return (isNum || isDel || isBack || isEnter); }; </script>
------解决方案--------------------
JS可以限制不能输入,一点都不显示真不行,这应该涉及到修改浏览器控件。
<input type="text" id="num" > <script type="text/javascript"> <!-- var text = document.getElementById("num"); text.onkeydown = function(){ setTimeout(function(){ while(text.value.match(/[^\d]+/)){ text.value=text.value.slice(0,-1) } },10); } text.onpaste = function(){ return false; } text.ondragenter = function(e){ return false; } //--> </script>
------解决方案--------------------
百度:js控制文本框只能输入数字
很多答案
刚毕业,首先学会怎么解决问题,实在解决不了的,再到这儿提问。
这样自己才能学到更多。
<input onkeypress="return event.keyCode>=48&&event.keyCode<=57||event.keyCode==46" onpaste="return !clipboardData.getData('text').match(/\D/)" ondragenter="return false" style="ime-mode:Disabled" />
说明
1 只能输入0到9和小数点
2 只能粘贴数字
3 不能拖动内容进来
4 禁止使用输入法
这段代码和楼上的代码 综合一下,就更好了。
------解决方案--------------------
你的意思是input框只显示数字,非数字的不显示;但是Input框的内容还不能变,后面还要用;
办法是这样的:
(1)input框的实际内容放到一个公共变量里面,
(2)input框的展示内容为实际内容中的所有数字
jquery代码如下:
$(function(){
var globalText = "" ;//全局变量,保存Input框里面的全部内容
$("#div1").bind("keyup",function()//检测输入是否数字,不是数字将内容转换为纯数字的,将实际内容保存到一个公共变量中,供调用
{
var temp = $(this).val();//实际内容
var ss = temp.replace(/[\D]/,"");//屏蔽非数字后的字符串
globalText = temp;//原来的字符串保存到公共变量
$(this).val(ss);//更改Input值
alert(globalText);
});
});
<input id="div1" type="text" value=""/>