Javascript 在使用模式插入输入之前自动设置值格式

Javascript 在使用模式插入输入之前自动设置值格式,javascript,jquery,html,jquery-mask,Javascript,Jquery,Html,Jquery Mask,我有一个带有电话模式的“电话”类型输入(巴西号码系统): 问题是当我从数据库加载数字时添加了一个默认值。它填写时没有特殊字符,我认为表单不允许提交,因为该字段是必填字段,并且不符合模式 这是我从db直接在输入中加载值时得到的结果: 这就是我需要匹配模式的内容(以及我手动键入数字时输入的内容,而不使用输入的值属性加载): 有没有一种方法可以通过在数字之间添加特殊字符来自动加载值并使其与模式匹配,而无需解析和处理字符串?为什么不在加载时应用掩码 var PhoneMaskBehavior=函数

我有一个带有电话模式的“电话”类型输入(巴西号码系统):

问题是当我从数据库加载数字时添加了一个默认值。它填写时没有特殊字符,我认为表单不允许提交,因为该字段是必填字段,并且不符合模式

这是我从db直接在输入中加载值时得到的结果:

这就是我需要匹配模式的内容(以及我手动键入数字时输入的内容,而不使用输入的
属性加载):


有没有一种方法可以通过在数字之间添加特殊字符来自动加载值并使其与模式匹配,而无需解析和处理字符串?

为什么不在加载时应用掩码

var PhoneMaskBehavior=函数(val){
返回值替换(/\D/g')。长度===11?'(00)00000-0000':'(00)0000-00009';
},
电话选项={
selectOnFocus:true,
onKeyPress:功能(val、e、字段、选项){
掩码(PhoneMaskBehavior.apply({},参数),选项);
}
};
$(文档).ready(函数(){
$('input[type=tel]')。掩码(PhoneMaskBehavior,phoneOptions)
})

仅供参考,您不需要在该正则表达式中使用
[]
(,
\)
-
。另外,我不熟悉jQuery,但我想您可以用一行
String.prototype.replace
来做您想做的事情。
<input class="form-control" maxlength="15" pattern="[\(]?[0-9]{2}[\)]?[ ]?[0-9]{4,5}[-]?[0-9]{4}" type="tel" value="">
var PhoneMaskBehavior = function (val) {
    return val.replace(/\D/g, '').length === 11 ? '(00) 00000-0000' : '(00) 0000-00009';
},
    phoneOptions = {
        selectOnFocus: true,
        onKeyPress: function(val, e, field, options) {
            field.mask(PhoneMaskBehavior.apply({}, arguments), options);
        }
};