如何控制文本框中只可输入两位小数的数字?
注意不是输完后check,而是输的时候如果输字母,文本框中不会出现字母
下面是只可输入两位数字的例子,但带小数点的不会
<input type="text" maxlength="2" onkeyup="value=value.replace(/[^\d]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
注意不是输完后check,而是输的时候如果输字母,文本框中不会出现字母
下面是只可输入两位数字的例子,但带小数点的不会
<input type="text" maxlength="2" onkeyup="value=value.replace(/[^\d]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
$(document).ready(function(){
$("#test").blur(function(){
var value = $(this).val();
if(!isNaN(value)&& (value.length < 3)){
alert("yes");
}else{
alert("no");
}
});
});html:<input type="text" id="test" />我用的jquery
去写一个函数,让keyup和paste事件都指向这个函数
在函数里判断你的规则,再改变的你value
$(document).ready(function(){
$("#test").blur(function(){
var value = $(this).val();
var length = $(this).val().length;
var first = value.indexOf(".");//判断第一个小数点所在位置
var last = value.lastIndexOf(".");//判断最后一个小数点所在的位置
var temp_length = value.split(".").length - 1;//含有.的个数
if(!isNaN(value) && (temp_length == 1) && (first==last) && (length - last ==3) ){
alert("yes");
}else{
alert("no");
}
});
});刚才看错了
2、判断是否有小数点(且只有一个)
3、判断小数点后有几个字符(lastInexOf)
这种方法可以实现,但很麻烦
楼主最好在onchange触发时用正则匹配输入框中的字符串
{
var v = obj.value;
var reg = /^\d*\.(\d{2})$/gi;
if (reg.test(obj.value))
{
return false;
}
return true;
}
function check2(obj)
{
var v = obj.value;
obj.value = v.replace(/[^\d\.]/g,'')
}<input type="text" onkeypress="return check1(this);" onkeyup="check2(this);"/>
<input type="text" onkeyup="this.value=/^\d+\.?\d{0,2}$/.test(this.value) ? this.value : ''">
var obj=e.srcElement || e.target;
var dot=obj.value.indexOf(".");//alert(e.which);
len =(typeof(len)=="undefined")?2:len;
var key=e.keyCode|| e.which;
if(key==8 || key==9 || key==46 || (key>=37 && key<=40))//这里为了兼容Firefox的backspace,tab,del,方向键
return true;
if (key<=57 && key>=48) { //数字
if(dot==-1)//没有小数点
return true;
else if(obj.value.length<=dot+len)//小数位数
return true;
} else if((key==46) && dot==-1){//小数点
return true;
}
return false;
}<input type="text" id="ttext" class="ime" onkeypress="return myNumberic(event)" />
.ime {ime-mode:disabled;}
function checknum(obj)
{ if(/^\d+\.?\d{0,2}$/.test(obj.value)){
obj.value = obj.value;
}else{
obj.value = obj.value.substring(0,obj.value.length-1);
}
}
<input type="text" onkeyup="checknum(this);"/>