我有一个带有所需电话号码字段的表单,使用maskedinput插件
(999)999-9999
我希望jquery验证忽略文字以验证这一点。此外,我希望在提交表单之前删除文字。但是如果存在验证错误,我仍然希望激活maskedinput插件,以便格式看起来仍然适合用户。
我想我可以编辑正则表达式进行验证,但是当提交表单时,文字仍然会在那里。
让我知道我需要更好地解释这一点。
任何想法?我对jquery很新,所有这些详细的解决方案都很棒。
我的javascript代码就是这个
$(document).ready(function(){
jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
phone_number = phone_number.replace(/\s+/g, "");
return this.optional(element) || phone_number.length > 9 &&
phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "US Phone Number Required");
$("#valform").validate({
invalidHandler: function(form, validator) {
var errors = validator.numberOfInvalids();
if (errors) {
$("#error-message").show().text("Please correct the required field(s)");
} else {
$("#error-message").hide();
}
},
messages: {
phone: {
required: ""
}
},
rules: {
phone: {
required: true,
phoneUS: true
},
},
});
$("#phone").mask("(999) 999-9999",{placeholder:" "});
});
答案 0 :(得分:1)
您可以在使用js
提交表单之前删除其他字符此代码将在输入后立即从输入中删除禁止字符。
输入字段具有“数字”类。这会将“keyup”事件绑定到该输入字段并调用名为“handleInputKeyUp”的函数
$(".numbers").bind("keyup", handleInputKeyUp);
功能:
function handleInputKeyUp(e){
var temp = e.currentTarget.value;
temp = temp.replace(/[^\d-]/g, "");
e.currentTarget.value = temp;
}
此代码从输入字段中删除除数字和 - 之外的所有数字。