我正在尝试为电话号码创建自定义验证程序方法。我想允许用户以任何格式输入电话#,即。然后简单地删除非数字字符,以我自己的格式重新格式化文本并复制到输入字段中。(800)555-1212,800.555.1212等。我玩过不同的方法,但似乎找不到合适的组合。我的最新尝试类似于:
jQuery.validator.addMethod("validphone", function(value, element, param) {
mNum = value.replace(/[^0-9]/g, '');
if(mNum.length != 10)
return false;
else
return this.optional(element) || (mNum.length == 10);
}, jQuery.validator.messages.number);
这似乎可以根据需要进行验证,但我找不到将重新格式化的数字放回输入字段的正确方法。从逻辑上讲,我认为它应该是$(this).val(mNum);
,但这似乎不起作用。也许它因为从验证方法调用而失败了?
任何想法都将不胜感激!
答案 0 :(得分:2)
看起来您会在val()
上设置element
,而不是在您的参数签名中。