Para hacer un proyecto de contabilidad, debe limitar el número de entrada a 9 dígitos antes del punto decimal y solo 2 dígitos después del punto decimal. Encontré algunos códigos en Internet y descubrí que no se podían usar, y luego pensé en uno yo mismo. El propietario no será regular, por lo que solo puede usar este método estúpido. El código es el siguiente, y ha sido comentado.
// //存在小数点
// obj输入框对象
if(obj.value.indexOf(".") >= 0) {//判断是否有小数点
var cursurPosition=0;//光标位置
if(obj.selectionStart){//非IE浏览器
cursurPosition= obj.selectionStart;
}else{//IE浏览器
try{
var range = document.selection.createRange();
range.moveStart("character",-obj.value.length);
cursurPosition=range.text.length;
}catch(e){
cursurPosition = 0;
}
}
console.log("光标位置:"+cursurPosition+"-----小数点位置"+obj.value.indexOf("."));
if(cursurPosition<=obj.value.indexOf(".")){//当光标位置小于或者等于小数点位置,说明光标在整数部分
//小数点前9位
if(obj.value.substring(0, obj.value.indexOf(".")).length>= 9) {
return false;
}
}else{//当光标大于小数点位置,说明在小数点部分
//小数点后两位
if(obj.value.substring(obj.value.indexOf(".") + 1, obj.value.length).length >= 2) {
return false;
}
}
}
//不存在小数点
if(obj.value.indexOf(".") < 0) {
if(obj.value.length>=9){
return false;
}
}