Browse Source

管理评估中计算公式只能输入数字和特殊符号./%*~

zhouna 6 years ago
parent
commit
e3018ea5cc

+ 12 - 2
src/components/AssessResult/ScaleItem/index.jsx

@@ -75,12 +75,22 @@ class ScaleItem extends Component {
       radioVal:Object.assign({},radioVal,{[parent.conceptId]:item.detailName})
     })
   }
+  handleReg(e){   //只能输入数字和特殊符号
+    const key = e.key;
+    if(key!='Backspace'&&((/[^\d|.\/%*~]/.test(key)))){
+      e.preventDefault();
+    }
+  }
   handleInputformula(id,calcuContent,i,e) {
     const {calcuValues} = this.state;
     let obj = deepClone(calcuValues);
     let values = (obj&&obj[id])||deepClone(calcuContent);
-    values[i].value = e.target.value;
+    const txt = e.target.value;
+    values[i].value = txt.replace(/[\u4e00-\u9fa5]|[^\d|.\/%*~]/g,'');       //处理中文输入法的情况
     obj[id] = values;
+    if(/[\u4e00-\u9fa5]|[^\d|.\/%*~]/g.test(txt)){
+      e.target.value = txt.replace(/[\u4e00-\u9fa5]|[^\d|.\/%*~]/g,'');
+    }
     this.setState({
       isCalculated:false,
       calcuValues:obj
@@ -218,7 +228,7 @@ class ScaleItem extends Component {
                                 <span>{'请输入'+item1.name+':'}</span>
                               </td>
                               <td>
-                                {disabled?item1.value:<input type="text" placeholder="请输入"  value={item1.value} onInput={(e)=>this.handleInputformula(item.conceptId,details,idd,e)}/>}
+                                {disabled?item1.value:<input type="text" placeholder="请输入"  value={item1.value} onKeyDown={this.handleReg.bind(this)} onInput={(e)=>this.handleInputformula(item.conceptId,details,idd,e)}/>}
                               </td>
                               <td>
                                 <span>{item1.uint}</span>

+ 1 - 1
src/components/ChronicInfo/index.jsx

@@ -221,7 +221,7 @@ class ChronicInfo extends React.Component{
     this.closeFormula(it);
     chronicMagItem&&this.handleAddAssessItem(v,pIndex,i);
   }
-  handleReg(e){   //只能输入数字
+  handleReg(e){   //只能输入数字和特殊符号
     //const hasDot = e.target.value.indexOf('.')!=-1;
     const key = e.key;
     if(key!='Backspace'&&((/[^\d|.\/%*~]/.test(key)))){