特殊的多输入框校验?

有多个输入框:A,B,C,D,E,F,G,H,I,J,K。有以下的校验规则:
必须A+B or B+C or B+D+E or A+J这样组合来通过校验(A+B意味着A和B必须填入内容,其它选项框是否填内容不影响)。

有什么样的方法来实现呢。给出一定的思路即可。

阅读 2.5k
2 个回答

挨个校验呗。。。A有内容则B或者J必须有内容,A没内容则B必须有内容,B有内容C或者D必须有内容,除此之外的都fire掉~


上个代码,用jQ写的:

function checkVal(val) {
    var checkRes = val === '' ? false : val;
    return checkRes;
}
var a = checkVal($('#a').val());
var b = checkVal($('#b').val());
var c = checkVal($('#c').val());
var d = checkVal($('#d').val());
var e = checkVal($('#e').val());
var j = checkVal($('#j').val());
if (a && b) {
    alert('ok');
} else if (b && c) {
    alert('ok');
} else if (b && d && e) {
    alert('ok');
} else if (a && j) {
    alert('ok');
} else {
    alert('not ok');
}
A+B or B+C or B+D+E or A+J

// 大概的思路这样
var arr = [A&&B, B&&C, B&&D&&E, A&&J] // 你的规则
for (let i = 0, len = arr.length; i < len; i++) {
    if (arr[i]) {
        // 为真则继续
        continue;
    } else {
        // 否则圈出不合适的框
        let input = arr[i].split('&&')
        console.log(input[input.length-1], 'is needed')
        break;
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题