jq金额输入框

114 阅读1分钟
// 输入框金额判断
function verification(this_) {
    val = this_.val()
    this_.val(val.replace(/[^\d.]/g,''))
    // 输入两位数的时候判断第一位是0就只取第二位如01变1
    if(val.length == 1 && this_.val() == 0) {
        this_.val(1)
    }
    if(val.length == 2 && val.substr(0, 1) == 0 && val.substr(1, 1)!='.') {
        this_.val(val.substr(1, 1))
    }
    let index = val.indexOf('.')
    if(index==-1) {
        // 如果小数点不存在允许输入6位
        if(val.length>6) {
            this_.val(val.substr(0, 6))
        }
    }else { // 如果小数点存在允许输入9位,且小数点后输入两位禁止
        if(val.length>9 || val.length>index+3){
            this_.val(val.substr(0, val.length-1))
        }
    }
    // 判断当前输入为小数点
    if(val.substr(val.length-1, val.length) == '.') {
        // 判断之前就存在小数点,就删除最后一位,保持只有一个小数点
        if(val.substr(0, val.length-1).indexOf('.') !=-1) {
            this_.val(val.substr(0, val.length-1))
        }
        // 如果第一位是小数点就替换成0.
        if(val.length == 1) {
            this_.val('1')
        }
    }
}