我正在使用jQuery掩码功能(特别是手机)。我此时没有进行任何客户端验证,并希望它能够发送数字,即使他们没有完全填写掩码。
例如,我希望获得一个电话号码的10位数字。如果用户只输入9,我希望我的服务器处理错误。不幸的是,如果输入的值与掩码不匹配,它将不发送任何内容。
这是我的js代码:
$(".phone input[type=text]").mask("(999) 999-9999");
我需要做什么,即使未填写面具,它仍然会在发布表单时发送值?
答案 0 :(得分:1)
根据您使用的the documentation of the mask plugin,?
之后的所有内容都是可选的,因此即使未提供10位数字,您也可以使用以下内容保留该值:
$(".phone input[type=text]").mask("?(999) 999-9999");
如果要删除非数字字符,可以在检索元素值时使用以下内容:
$(".phone input[type=text]").val().replace(/\D+/g, '');
如果您想在提交时删除这些字符,您可以使用以下内容:
$('form').on('submit', function() {
$(".phone input[type=text]").val(function () {
return this.value.replace(/\D+/g, '');
});
});
作为旁注,如果您改用this masking plugin,这不会有问题。此外,它还具有cleanVal()
方法,以便删除格式化字符。