input 输入框内只允许输入两位小数,即小数点后只保留两位,多余得无法输入。上代码:
<div class="row-col"> <label>增值票</label> <input type="number" placeholder="手动输入" v-model="ins.je_zz" @input="numberic(ins,'je_zz',$event)"/> <i class="unit">(元)</i> </div>
methods:{ numberic:function(item,keyname,event){// type 为number //item 为json对象,keyname为键值,event为事件对象.两位小数 var value=item[keyname]; var zeroFirst=value.indexOf(0); var dot=value.indexOf('.'); var vlen=value.length if(value.indexOf('.')==0){ alert("value.indexOf('.'):"+value.indexOf('.')); alert("请输入合法的数字!"); item[keyname]=0; } if(zeroFirst==0){//首位为0,第二位则必须为. if(vlen>=3 && value.indexOf('.')==1){ if(value.length>4){ item[keyname]=value.substr(0,vlen-1); alert("最多两位小数!"); }else{ if(isNaN(Number(value[vlen-1]))){ item[keyname]=value.substr(0,vlen-1); alert("请输入合法的数字!"); } } }else if(vlen==2 && value.indexOf('.')!=1){ alert("请输入小数点!"); item[keyname]=0; } }else{ if(dot>-1 && dot+1!=vlen){//已输入小数点 if(isNaN(Number(value[vlen-1]))){//小数点后只能输入0-9 item[keyname]=value.substr(0,vlen-1); alert("请输入合法的数字0-9!"); }else if(vlen-dot>2+1){ item[keyname]=value.substr(0,vlen-1); alert("最多两位小数!"); } }else if(dot==-1){ } } } }
js 代码是结合网上得代码自己写得,希望对同行有帮助。