要求:
文本框中只能输入数字,对于输入的非数字,则阻止用户输入该非数字。要兼容ie和firefox???????
32 个解决方案
#1
标签里写:
onKeyPress="if (event.keyCode < 48 || event.keyCode > 57) event.returnValue = false;"
onKeyPress="if (event.keyCode < 48 || event.keyCode > 57) event.returnValue = false;"
#2
<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">
#3
<script type="text/javascript">
function getEvent() {
if (document.all) {
return window.event; //for ie
}
func = getEvent.caller;
while (func != null) {
var arg0 = func.arguments[0];
if (arg0) {
if ((arg0.constructor == Event || arg0.constructor == MouseEvent) || (typeof (arg0) == "object" && arg0.preventDefault && arg0.stopPropagation)) {
return arg0;
}
}
func = func.caller;
}
return null;
}
function doit(){
var ev = getEvent();
if(ev.keyCode < 48 || ev.keyCode > 57) return false;
}
</script>
<input type="text" id="txt" onkeydown="return doit()">
#4
+1
#5
onkeypress = 'return /^\d$/.test(arguments[0].keyCode)'
onblur = 'this.value = this.value.replace(/\D+/g, "")'
onblur = 'this.value = this.value.replace(/\D+/g, "")'
#6
可以兼容ie,火狐,google浏览器么
#7
自己去试试不就知道了嘛。。。
#8
这个只能适用于IE 但FF不行
#9
不行啊。中文状态下,输入按shift或空格键就被输入进去了啊
#10
你每个都测试了?!
#11
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<input type="text" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" />
</body>
</html>
试试这个
#12
中文js禁止 不了的,
可以加样式禁用输入法(chrome不会起作用)
ime-mode:disabled;
#13
那个禁用了输入法的imeMode适合firefox么????
#14
适合
#15
zsx841021 ,我试了的,那个好像替换怎么没有效果啊。问下啊,onfaterpast是粘贴后出发的事件么???
#16
控制文本框只能输入数字是一个很常见的需求,比如电话号码的输入、数量的输入等,这时候就需要我们控制文本框只能输入数字。在用js控制之后在英文输入法的状态下去敲击键盘上的非数字键是输不进去的,然而当你转到中文输入法的时候输入的是中文,再按空格或回车键,中文或英文字母就输进去了,这时候就需要我们在文本框得到焦点的时候把输入法关闭,就是不响应输入法的切换。如下语句可以实现这样的功能。
下面的语句是用jquery写的,控制class为checkNum的文本框只能输入数字和小数点。
Js代码 收藏代码
//监听键盘,只允许输入数字和小数点
$(".checkNum").keypress(function(event) {
var keyCode = event.which;
if (keyCode == 46 || (keyCode >= 48 && keyCode <=57))
return true;
else
return false;
}).focus(function() {
this.style.imeMode='disabled';
});
imeMode有四种形式,分别是:
active 代表输入法为中文
inactive 代表输入法为英文
auto 代表打开输入法 (默认)
disable 代表关闭输入法
可是这个禁用输入法兼容性如何????如果不能兼容该如何解决
下面的语句是用jquery写的,控制class为checkNum的文本框只能输入数字和小数点。
Js代码 收藏代码
//监听键盘,只允许输入数字和小数点
$(".checkNum").keypress(function(event) {
var keyCode = event.which;
if (keyCode == 46 || (keyCode >= 48 && keyCode <=57))
return true;
else
return false;
}).focus(function() {
this.style.imeMode='disabled';
});
imeMode有四种形式,分别是:
active 代表输入法为中文
inactive 代表输入法为英文
auto 代表打开输入法 (默认)
disable 代表关闭输入法
可是这个禁用输入法兼容性如何????如果不能兼容该如何解决
#17
什么叫没有效果。。。(onfaterpast是粘贴后出发的事件么???)对
#18
private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{
if (textBox3.SelectionStart == 0)
{
if (e.KeyChar.CompareTo( '0 ') == 0 || e.KeyChar.CompareTo( '0 ') < 0 || e.KeyChar.CompareTo( '9 ') > 0)
{
e.Handled = true;
}
}
else
{
if (e.KeyChar.CompareTo( '0 ') < 0 || e.KeyChar.CompareTo( '9 ') > 0)
{
if (e.KeyChar != '\b ')
e.Handled = true;
}
}
}
{
if (textBox3.SelectionStart == 0)
{
if (e.KeyChar.CompareTo( '0 ') == 0 || e.KeyChar.CompareTo( '0 ') < 0 || e.KeyChar.CompareTo( '9 ') > 0)
{
e.Handled = true;
}
}
else
{
if (e.KeyChar.CompareTo( '0 ') < 0 || e.KeyChar.CompareTo( '9 ') > 0)
{
if (e.KeyChar != '\b ')
e.Handled = true;
}
}
}
#19
<input type="text"
onkeypress = 'return /^\d$/.test(String.fromCharCode(event.keyCode))'
oninput= 'this.value = this.value.replace(/\D+/g, "")'
onpropertychange='if(!/\D+/.test(this.value)){return;};this.value=this.value.replace(/\D+/g, "")'
onblur = 'this.value = this.value.replace(/\D+/g, "")'/>
回复给你了,四事件组合,牛B轰轰的限制输入,至少兼容Firefox、IE、Chrome。
onkeypress = 'return /^\d$/.test(String.fromCharCode(event.keyCode))'
oninput= 'this.value = this.value.replace(/\D+/g, "")'
onpropertychange='if(!/\D+/.test(this.value)){return;};this.value=this.value.replace(/\D+/g, "")'
onblur = 'this.value = this.value.replace(/\D+/g, "")'/>
回复给你了,四事件组合,牛B轰轰的限制输入,至少兼容Firefox、IE、Chrome。
#20
事件兼容
<input type="text"
onkeypress = 'return /^\d$/.test(String.fromCharCode(event.keyCode||event.keycode||event.which))'
oninput= 'this.value = this.value.replace(/\D+/g, "")'
onpropertychange='if(!/\D+/.test(this.value)){return;};this.value=this.value.replace(/\D+/g, "")'
onblur = 'this.value = this.value.replace(/\D+/g, "")'/>
#21
这个NB透了!!霸气
#22
太强悍啦~
#23
<input type="text" this.value=value.replace(/[^\d]/g,'')\" onbeforepaste=\"clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))/>
#24
亲测,全部通过:
<input type="text" name="text" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" />
结贴给分!
<input type="text" name="text" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" />
结贴给分!
#25
我怎么测得还是出来了,右键贴的
这么多人 帮看下我的问题
http://topic.csdn.net/u/20111207/21/3bbfb031-0a42-4ed2-9de7-3ebac6dec751.html?57709
#26
事件兼容
太牛了,感谢分享,正好用到
<input type="text"
onkeypress = 'return /^\d$/.test(String.fromCharCode(event.keyCode||event.keycode||event.which))'
oninput= 'this.value = this.value.replace(/\D+/g, "")'
onpropertychange='if(!/\D+/.test(this.value)){return;};this.value=this.value.replace(/\D+/g, "")'
onblur = 'this.value = this.value.replace(/\D+/g, "")'/>
#27
eeeeeeeeeee
#28
HTML
<asp:TextBox ID="TextBox36" runat="server"
onkeypress = "clearNoNum(this)"
oninput= "clearNoNum(this)"
onpropertychange="clearNoNum(this)"
sonblur = "clearNoNum(this)"
style="margin-bottom: 0px;" Width="117px"></asp:TextBox>
JS
<script language="JavaScript" type="text/javascript">
function clearNoNum(obj)
{
obj.value = obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符
obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字而不是.
obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的.
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
}
</script>
<asp:TextBox ID="TextBox36" runat="server"
onkeypress = "clearNoNum(this)"
oninput= "clearNoNum(this)"
onpropertychange="clearNoNum(this)"
sonblur = "clearNoNum(this)"
style="margin-bottom: 0px;" Width="117px"></asp:TextBox>
JS
<script language="JavaScript" type="text/javascript">
function clearNoNum(obj)
{
obj.value = obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符
obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字而不是.
obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的.
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
}
</script>
#29
可以输入小数点 并且只允许输入一个
#30
很不错,测试了确实可以
#31
不兼容 火狐哦, 加上后,什么都不能输入了,ie、google试过能兼容。
#32
马克一下
#1
标签里写:
onKeyPress="if (event.keyCode < 48 || event.keyCode > 57) event.returnValue = false;"
onKeyPress="if (event.keyCode < 48 || event.keyCode > 57) event.returnValue = false;"
#2
<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">
#3
<script type="text/javascript">
function getEvent() {
if (document.all) {
return window.event; //for ie
}
func = getEvent.caller;
while (func != null) {
var arg0 = func.arguments[0];
if (arg0) {
if ((arg0.constructor == Event || arg0.constructor == MouseEvent) || (typeof (arg0) == "object" && arg0.preventDefault && arg0.stopPropagation)) {
return arg0;
}
}
func = func.caller;
}
return null;
}
function doit(){
var ev = getEvent();
if(ev.keyCode < 48 || ev.keyCode > 57) return false;
}
</script>
<input type="text" id="txt" onkeydown="return doit()">
#4
+1
#5
onkeypress = 'return /^\d$/.test(arguments[0].keyCode)'
onblur = 'this.value = this.value.replace(/\D+/g, "")'
onblur = 'this.value = this.value.replace(/\D+/g, "")'
#6
可以兼容ie,火狐,google浏览器么
#7
自己去试试不就知道了嘛。。。
#8
这个只能适用于IE 但FF不行
#9
不行啊。中文状态下,输入按shift或空格键就被输入进去了啊
#10
你每个都测试了?!
#11
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<input type="text" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" />
</body>
</html>
试试这个
#12
中文js禁止 不了的,
可以加样式禁用输入法(chrome不会起作用)
ime-mode:disabled;
#13
那个禁用了输入法的imeMode适合firefox么????
#14
适合
#15
zsx841021 ,我试了的,那个好像替换怎么没有效果啊。问下啊,onfaterpast是粘贴后出发的事件么???
#16
控制文本框只能输入数字是一个很常见的需求,比如电话号码的输入、数量的输入等,这时候就需要我们控制文本框只能输入数字。在用js控制之后在英文输入法的状态下去敲击键盘上的非数字键是输不进去的,然而当你转到中文输入法的时候输入的是中文,再按空格或回车键,中文或英文字母就输进去了,这时候就需要我们在文本框得到焦点的时候把输入法关闭,就是不响应输入法的切换。如下语句可以实现这样的功能。
下面的语句是用jquery写的,控制class为checkNum的文本框只能输入数字和小数点。
Js代码 收藏代码
//监听键盘,只允许输入数字和小数点
$(".checkNum").keypress(function(event) {
var keyCode = event.which;
if (keyCode == 46 || (keyCode >= 48 && keyCode <=57))
return true;
else
return false;
}).focus(function() {
this.style.imeMode='disabled';
});
imeMode有四种形式,分别是:
active 代表输入法为中文
inactive 代表输入法为英文
auto 代表打开输入法 (默认)
disable 代表关闭输入法
可是这个禁用输入法兼容性如何????如果不能兼容该如何解决
下面的语句是用jquery写的,控制class为checkNum的文本框只能输入数字和小数点。
Js代码 收藏代码
//监听键盘,只允许输入数字和小数点
$(".checkNum").keypress(function(event) {
var keyCode = event.which;
if (keyCode == 46 || (keyCode >= 48 && keyCode <=57))
return true;
else
return false;
}).focus(function() {
this.style.imeMode='disabled';
});
imeMode有四种形式,分别是:
active 代表输入法为中文
inactive 代表输入法为英文
auto 代表打开输入法 (默认)
disable 代表关闭输入法
可是这个禁用输入法兼容性如何????如果不能兼容该如何解决
#17
什么叫没有效果。。。(onfaterpast是粘贴后出发的事件么???)对
#18
private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{
if (textBox3.SelectionStart == 0)
{
if (e.KeyChar.CompareTo( '0 ') == 0 || e.KeyChar.CompareTo( '0 ') < 0 || e.KeyChar.CompareTo( '9 ') > 0)
{
e.Handled = true;
}
}
else
{
if (e.KeyChar.CompareTo( '0 ') < 0 || e.KeyChar.CompareTo( '9 ') > 0)
{
if (e.KeyChar != '\b ')
e.Handled = true;
}
}
}
{
if (textBox3.SelectionStart == 0)
{
if (e.KeyChar.CompareTo( '0 ') == 0 || e.KeyChar.CompareTo( '0 ') < 0 || e.KeyChar.CompareTo( '9 ') > 0)
{
e.Handled = true;
}
}
else
{
if (e.KeyChar.CompareTo( '0 ') < 0 || e.KeyChar.CompareTo( '9 ') > 0)
{
if (e.KeyChar != '\b ')
e.Handled = true;
}
}
}
#19
<input type="text"
onkeypress = 'return /^\d$/.test(String.fromCharCode(event.keyCode))'
oninput= 'this.value = this.value.replace(/\D+/g, "")'
onpropertychange='if(!/\D+/.test(this.value)){return;};this.value=this.value.replace(/\D+/g, "")'
onblur = 'this.value = this.value.replace(/\D+/g, "")'/>
回复给你了,四事件组合,牛B轰轰的限制输入,至少兼容Firefox、IE、Chrome。
onkeypress = 'return /^\d$/.test(String.fromCharCode(event.keyCode))'
oninput= 'this.value = this.value.replace(/\D+/g, "")'
onpropertychange='if(!/\D+/.test(this.value)){return;};this.value=this.value.replace(/\D+/g, "")'
onblur = 'this.value = this.value.replace(/\D+/g, "")'/>
回复给你了,四事件组合,牛B轰轰的限制输入,至少兼容Firefox、IE、Chrome。
#20
事件兼容
<input type="text"
onkeypress = 'return /^\d$/.test(String.fromCharCode(event.keyCode||event.keycode||event.which))'
oninput= 'this.value = this.value.replace(/\D+/g, "")'
onpropertychange='if(!/\D+/.test(this.value)){return;};this.value=this.value.replace(/\D+/g, "")'
onblur = 'this.value = this.value.replace(/\D+/g, "")'/>
#21
这个NB透了!!霸气
#22
太强悍啦~
#23
<input type="text" this.value=value.replace(/[^\d]/g,'')\" onbeforepaste=\"clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))/>
#24
亲测,全部通过:
<input type="text" name="text" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" />
结贴给分!
<input type="text" name="text" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" />
结贴给分!
#25
我怎么测得还是出来了,右键贴的
这么多人 帮看下我的问题
http://topic.csdn.net/u/20111207/21/3bbfb031-0a42-4ed2-9de7-3ebac6dec751.html?57709
#26
事件兼容
太牛了,感谢分享,正好用到
<input type="text"
onkeypress = 'return /^\d$/.test(String.fromCharCode(event.keyCode||event.keycode||event.which))'
oninput= 'this.value = this.value.replace(/\D+/g, "")'
onpropertychange='if(!/\D+/.test(this.value)){return;};this.value=this.value.replace(/\D+/g, "")'
onblur = 'this.value = this.value.replace(/\D+/g, "")'/>
#27
eeeeeeeeeee
#28
HTML
<asp:TextBox ID="TextBox36" runat="server"
onkeypress = "clearNoNum(this)"
oninput= "clearNoNum(this)"
onpropertychange="clearNoNum(this)"
sonblur = "clearNoNum(this)"
style="margin-bottom: 0px;" Width="117px"></asp:TextBox>
JS
<script language="JavaScript" type="text/javascript">
function clearNoNum(obj)
{
obj.value = obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符
obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字而不是.
obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的.
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
}
</script>
<asp:TextBox ID="TextBox36" runat="server"
onkeypress = "clearNoNum(this)"
oninput= "clearNoNum(this)"
onpropertychange="clearNoNum(this)"
sonblur = "clearNoNum(this)"
style="margin-bottom: 0px;" Width="117px"></asp:TextBox>
JS
<script language="JavaScript" type="text/javascript">
function clearNoNum(obj)
{
obj.value = obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符
obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字而不是.
obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的.
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
}
</script>
#29
可以输入小数点 并且只允许输入一个
#30
很不错,测试了确实可以
#31
不兼容 火狐哦, 加上后,什么都不能输入了,ie、google试过能兼容。
#32
马克一下