export default { bind (el, binding) { const input = el.querySelector('.van-field__control') || el input.onkeyup = () => { // v-input.reset 后端为空不更新数据:前端处理为空重置为0 if (binding.modifiers.reset) { dataReset(input) } // v-input.num if (binding.modifiers.num) { // 只能输入数字≥0 onlyNum(input) } // v-input.num0 if (binding.modifiers.numNo0) { // 只能输入数字>0 onlyNum0(input) } input.dispatchEvent(new Event('input')) } input.onblur = () => { // v-input.float if (binding.modifiers.float) { // 数字+小数点≥0 onlyFloat(input) } // v-input.allFloat if (binding.modifiers.allFloat) { // 数字+小数点≥0 allFloat(input) } if (binding.modifiers.floatNo0) { // 数字+小数点>0 onlyFloat0(input) } // v-input.maxYearDay if (binding.modifiers.maxYearDay) { // 正数加最大366天 if(String(Number(input.value))!='NaN'){ if(Number(input.value)>366){ input.value=366 }else if(Number(input.value)<0){ input.value=0 }else{ input.value=parseInt(input.value); } } } // v-input.maxDayHour if (binding.modifiers.maxDayHour) { // 正数加最大24 if(String(Number(input.value))!='NaN'){ if(Number(input.value)>24){ input.value=24 }else if(Number(input.value)<0){ input.value=0 }else{ input.value=parseInt(input.value); } } } input.dispatchEvent(new Event('input')) } } } function dataReset (input) { input.value = input.value || 0 } function onlyNum (input) { input.value = input.value.replace(/\D+/g, '') } function onlyNum0 (input) { input.value = input.value.replace(/\D+/g, '') if(input.value == 0){ input.value = '' } } function onlyFloat (input) { input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3') if(Number(input.value) < 0){ input.value = '' } } function onlyFloat0 (input) { input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3') if(Number(input.value) == 0 || Number(input.value) < 0){ input.value = '' } } function allFloat (input) { input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3') }