Validation 表单验证 插件 jQuery 汉字自定义验证并动态提示

这篇博客介绍了如何在业务场景中针对输入框字符个数进行限制,特别是考虑到汉字在数据库中占用两个字符的情况。作者提供了一个自定义的jQuery验证方法`countMaxLength`,该方法通过遍历输入值的Unicode编码来判断字符是否为ASCII码,并据此计算实际长度。当输入长度超过预设限制时,会显示错误消息。这个方法在前端表单验证中可以有效防止超过数据库字段长度限制的问题。
摘要由CSDN通过智能技术生成

业务场景需:要对输入框的字符个数做限制,该插件汉字是算一个字符的但在数据库中是算两个,所以需要自定义验证对个数限制

1、自定义规则 

$.validator.addMethod("countMaxLength", function (value, element, params) {
    var inputLength = 0;
    //给一个变量来记录长度
    for (var i = 0; i < value.length; i++) {
        var countCode = value.charCodeAt(i);
        //返回指定位置的字符的Unicode编码
        //判断是不是ASCII码,Unicode码前128个字符是ASCII码
        if (countCode >= 0 && countCode <= 128) {
            inputLength++;
        } else {
            //如果是扩展码,则一次+2
            inputLength += 2;
        }
    }
    if (inputLength <= params) {
        return true;

    } else {
        $(element).data('error-msg', '超过最大长度' + params + '!');
        return false;
    }

}, function (params, element) {
    return $(element).data('error-msg');
});

二、引用的地方 

purchaseNo: {countMaxLength: 10}

$("#form-mdDrugExpand-edit").validate({
    rules: {
        medicId: {required: true, digits: false, maxlength: 36},
        handselDrugCode: {maxlength: 10},
        purchaseNo: {countMaxLength: 10},
    },
    submitHandler: function (form) {
        saveExpand();
    },
    errorPlacement: function (error, element) {
        error.appendTo(element.parent().after());
    }
});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十方天士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值