如何去除Inputmask输入框掩码并验证有效内容长度?
解决jQuery Inputmask掩码输入框获取有效内容长度的问题
你的代码存在几个关键错误:
- input元素没有
innerHTML属性,输入值存在value属性中,你用错了获取值的方式 test是你定义的变量,不是DOM元素,不能用document.getElementById("test")去获取它- 逻辑判断里的条件顺序和写法有问题,导致无法正确触发判断
正确的两种解决方法:
方法一:使用Inputmask插件自带方法(推荐)
插件本身提供了获取未格式化原始值的API unmaskedvalue(),能直接拿到用户输入的纯数字,无需自己处理掩码:
$("#myBtn1").click(function(e) { e.preventDefault(); // 阻止表单默认提交行为 var rawPhone = $("#HomePhone").inputmask('unmaskedvalue'); if (rawPhone !== "" && rawPhone.length < 10) { alert("Phone needs to be 10 digits long"); } });
方法二:手动提取有效数字
如果不想依赖插件API,可以直接获取输入框的value,用正则去除所有非数字字符后判断长度:
$("#myBtn1").click(function(e) { e.preventDefault(); var phoneVal = document.getElementById("HomePhone").value; var cleanDigits = phoneVal.replace(/\D/g, ''); // 过滤所有非数字字符 if (cleanDigits !== "" && cleanDigits.length < 10) { alert("Phone needs to be 10 digits long"); } });
内容的提问来源于stack exchange,提问作者rimi
相关产品推荐
相关产品推荐

