Javascript 如何让jQuery验证以允许数字包含破折号
我发现以前有人问过这个问题,建议添加一个名为Javascript 如何让jQuery验证以允许数字包含破折号,javascript,jquery,jquery-validate,alphanumeric,Javascript,Jquery,Jquery Validate,Alphanumeric,我发现以前有人问过这个问题,建议添加一个名为字母数字的方法。我尝试添加此方法,但验证仍不接受带破折号的电话号码 有人知道我做错了什么吗 $('#phone').keyup(函数(){ addMethod(“字母数字”,函数(值,元素){ 返回此.optional(element)| |/^[a-z0-9\-]+$/i.test(value); },“仅限数字和破折号”); }); $(“#salesforce_submit”)。验证({ 规则:{ 电话:{ 要求:正确, //数字:对, 最小长
字母数字
的方法。我尝试添加此方法,但验证仍不接受带破折号的电话号码
有人知道我做错了什么吗
$('#phone').keyup(函数(){
addMethod(“字母数字”,函数(值,元素){
返回此.optional(element)| |/^[a-z0-9\-]+$/i.test(value);
},“仅限数字和破折号”);
});
$(“#salesforce_submit”)。验证({
规则:{
电话:{
要求:正确,
//数字:对,
最小长度:10,
字母数字:真
}
},
信息:{
电话:{
必填:“请输入您的电话号码”,
数字:“请输入一个只有数字的有效电话号码”,
minlength:“你的号码似乎有点短,不是吗?”
}
},
submitHandler:函数(表单){
event.preventDefault();
var datastring=$(“#salesforce_submit”).serialize();
$.ajax({
url:“/php/quoteSend.php”,
键入:“POST”,
数据:datastring
,
成功:功能(数据){
控制台日志(数据);
如果(数据=='Error!'){
警报(“无法提交表单!”);
}否则{
}
},
错误:函数(xhr、textStatus、errorshown){
警报(textStatus+“|”+错误抛出);
console.log('error');
}
});
}
})
您可以使用此代码来允许数字和破折号
jQuery.validator.addMethod("numericdashe", function (value, element) {
console.log(value);
if (/^[0-9\-]+$/i.test(value)) {
return true;
} else {
return false;
};
}, "Numbers and dashes only");
添加NumericDash角色
phone: {
required: true,
//digits: true,
minlength: 10,
//alphanumeric: true
numericdashe: true
}
},
无需在监听器中添加
jQuery.validator.addMethod
。您可以使用此代码来允许数字和破折号
jQuery.validator.addMethod("numericdashe", function (value, element) {
console.log(value);
if (/^[0-9\-]+$/i.test(value)) {
return true;
} else {
return false;
};
}, "Numbers and dashes only");
添加NumericDash角色
phone: {
required: true,
//digits: true,
minlength: 10,
//alphanumeric: true
numericdashe: true
}
},
无需在
keyup
侦听器中添加jQuery.validator.addMethod
。您的正则表达式有问题
作品:/^[+][(]{0,1}[0-9]{1,3}[)]{0,1}[-\s./0-9]$/i
$('#phone').keyup(函数(){
addMethod(“字母数字”,函数(值,元素){
返回此.optional(element)| |/^[+]*[(]{0,1}[0-9]{1,3}[)]{0,1}[-\s\./0-9]*$/i.test(value);
},“仅限数字和破折号”);
});
$(“#salesforce_submit”)。验证({
规则:{
电话:{
要求:正确,
//数字:对,
最小长度:10,
字母数字:真
}
},
信息:{
电话:{
必填:“请输入您的电话号码”,
数字:“请输入一个只有数字的有效电话号码”,
minlength:“你的号码似乎有点短,不是吗?”
}
},
submitHandler:函数(表单){
event.preventDefault();
var datastring=$(“#salesforce_submit”).serialize();
$.ajax({
url:“/php/quoteSend.php”,
键入:“POST”,
数据:datastring
,
成功:功能(数据){
控制台日志(数据);
如果(数据=='Error!'){
警报(“无法提交表单!”);
}否则{
}
},
错误:函数(xhr、textStatus、errorshown){
警报(textStatus+“|”+错误抛出);
console.log('error');
}
});
}
})
您的正则表达式有问题 作品:/^[+][(]{0,1}[0-9]{1,3}[)]{0,1}[-\s./0-9]$/i
$('#phone').keyup(函数(){
addMethod(“字母数字”,函数(值,元素){
返回此.optional(element)| |/^[+]*[(]{0,1}[0-9]{1,3}[)]{0,1}[-\s\./0-9]*$/i.test(value);
},“仅限数字和破折号”);
});
$(“#salesforce_submit”)。验证({
规则:{
电话:{
要求:正确,
//数字:对,
最小长度:10,
字母数字:真
}
},
信息:{
电话:{
必填:“请输入您的电话号码”,
数字:“请输入一个只有数字的有效电话号码”,
minlength:“你的号码似乎有点短,不是吗?”
}
},
submitHandler:函数(表单){
event.preventDefault();
var datastring=$(“#salesforce_submit”).serialize();
$.ajax({
url:“/php/quoteSend.php”,
键入:“POST”,
数据:datastring
,
成功:功能(数据){
控制台日志(数据);
如果(数据=='Error!'){
警报(“无法提交表单!”);
}否则{
}
},
错误:函数(xhr、textStatus、errorshown){
警报(textStatus+“|”+错误抛出);
console.log('error');
}
});
}
})
Any number“带破折号的电话号码”。您在其中出错?我的眼睛在流血。@NishantDixit刚刚输入的一个10位数字号码。@无尽的感谢。我不知道我有`type=“phone”。任何带有破折号的“电话号码”。你在其中出错?我的眼睛在流血。@NishantDixit一个刚刚输入的10位数字。@无尽的感谢。我不知道我有`type=“phone”“。你的答案中保留了OP的错误结构。仅供参考,在一个特定字段内每次按下一个键时都触发.addMethod()
没有意义。只需启动一次即可创建新规则。@Sparky,OP特别要求找出她/他的代码的错误,使其无法工作。我只是指出了错误的地方。不确定OP是否要求对其代码进行重大更改。答案的质量取决于您的业务。我只是指出你的现场演示是如何错误构建的。你在回答中保留了OP的错误结构。仅供参考,在一个特定字段内每次按下一个键时都触发.addMethod()
没有意义。只需启动一次即可创建新规则。@Sparky,OP特别要求找出她/他的代码的错误,使其无法工作。我只是指出了错误的地方。不确定OP是否要求对其代码进行重大更改。答案的质量取决于您的业务。我只是指出你的现场演示是如何错误构建的。感谢你认识并说出OP的keyup
错误。感谢你认识并说出OP的keyup
错误