Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何让jQuery验证以允许数字包含破折号_Javascript_Jquery_Jquery Validate_Alphanumeric - Fatal编程技术网

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
错误