两个字段中至少有一个必须完成验证
At least one of two fields must be completed validation
首先,我是不是使用jquery验证插件。
我在JavaScript中有以下验证:
var m = mob.substr(0,2);
var l = land.substr(0,2);
if (mob == '' && land == '') {
alert("You must enter at least one phone number");
return false;
}
else if (mob.length != 10 || m != "04") {
alert("Mobile number is invalid. Must be a valid australian mobile number.");
return false;
}
else if (land.length != 10 || l == "04" || l == "01" || l == "05" || l == "06" || l == "09" || l == "00") {
alert("Landline is invalid. Must be a valid australian landline number.");
return false;
}
正如标题所示,我希望用户能够只输入一个或两个字段,而不是将两个字段都留空。
如何将其合并到验证中?
var m = mob.substr(0,2);
var l = land.substr(0,2);
if (mob === '' && land === '') {
alert("You must enter at least one phone number");
return false;
}
if (mob !== '' && (mob.length !== 10 || m !== "04")) {
alert("Mobile number is invalid. Must be a valid australian mobile number.");
return false;
}
if (land !== '' && (land.length !== 10 || l === "04" || l === "01" || l === "05" || l === "06" || l === "09" || l === "00")) {
alert("Landline is invalid. Must be a valid australian landline number.");
return false;
}
return true;
这里只是在最后两个条件的基础上再添加一个条件。把它们写成独立的if语句。所以它们都会被求值。
只是一个想法…
function validate () {
var sMobile = ...;
var sLand = ...;
var lines = parsePhoneLines(sMobile, sLand);
if (lines.errors) {
for (var i = 0, length = lines.errors.length; i < length; i++) {
alert (lines.errors[i]);
}
return false;
} else {
return true;
}
}
function parsePhoneLines (sMobile, sLand) {
var mobile = parseMobile(sMobile),
land = parseLand(sLand);
if (mobile.errors && land.errors) {
return {
errors: mobile.errors.concat(land.errors)
};
} else {
return {
land: land.value,
mobile: mobile.value
};
}
}
function parseMobile (s) {
var errors = getErrorsForMobile(s);
if (errors.length === 0) {
return { value: s };
} else {
return { errors: errors };
}
}
function parseLand (s) {
var errors = getErrorsForLand(s);
if (errors.length === 0) {
return { value: s };
} else {
return { errors: errors };
}
}
试试这个:
var m = mob.substr(0,2);
var l = land.substr(0,2);
if (mob == '' && land == '') {
alert("You must enter at least one phone number");
return false;
} else {
if (mob != '') {
if (mob.length != 10 || m != "04") {
alert("Mobile number is invalid. Must be a valid australian mobile number.");
return false;
}
} else {
if (land.length != 10 || l == "04" || l == "01" || l == "05" || l == "06" || l == "09" || l == "00") {
alert("Landline is invalid. Must be a valid australian landline number.");
return false;
}
}
}
return true;
只需要给第一个if加上else子句
var m = mob.substr(0,2);
var l = land.substr(0,2);
var flag=1;
if (mob == '' && land == '') {
alert("You must enter at least one phone number");
return false;
}
else if (mob.length != 10 || m != "04") {
if(land.length>0)
{
//landline have value don not alert this
}
else
{
alert("Mobile number is invalid. Must be a valid australian mobile number.");
flag=0;//means invalid
}
}
else if (land.length != 10 || l == "04" || l == "01" || l == "05" || l == "06" || l == "09" || l == "00") {
if(flag==1)
{
return true;// means mobile have value
}
alert("Landline is invalid. Must be a valid australian landline number.");
return false;
}
相关文章:
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 如何在只能有一个asp.net表单的主页上从asp.net页面中的javascript中获取值
- 有可能在来自链接的警报中有一个值吗
- 是否<asp:文本框>有一个onFocusLost事件
- 让谷歌数据图表有一个24小时x轴
- PayPal按钮是否有一个简单的选项,其中金额基于一些用户输入
- 我确实有一个表单,如果用户输入了输入,它应该检查否定或空的输入框,并抛出一条警告消息
- 在这个使用hasOwnProperty的对象扩展程序中有一个错误,I'我不确定那个bug是什么,也不确定这个扩展
- 当知道同一hiearch中至少有一个元素时,遍历到元素.结构使用jquery
- 我有一个 HTML 多选框,之前没有选择任何内容.我需要验证是否应该在 javascript 中至少选择一个
- Page_ClientValidate返回 false,但没有一个验证器有错误
- AngularJS - 表单自定义验证 - 检查是否至少有一个输入为空
- 两个字段中至少有一个必须完成验证
- 是否有一个设计模式的网站验证与JS和PHP的建设
- 我如何在引导中验证至少有一个复选框被标记并将此信息传递给php ?
- 使用jQuery验证确保至少有一个下拉菜单有值
- Meteor简单模式-当修饰符选项为true时,验证对象必须至少有一个运算符
- Regex用于名称验证,至少有一个alpahbet(A-z)
- 我正在使用 auth0 进行用户身份验证,并且我有一个用于 CRUD 帖子(标题、图像、描述)的 API.如何对 CRU
- 是否有一个纯Javascript X/HTML验证器