验证多个值

时间:2013-02-27 21:35:38

标签: jquery

检查选项值是否等于多个值中的任何一个的最简单方法是什么?

这有效但只允许检查一个值。

if ($(this).val() == 'QA') {
   //do something
} 

我想检查多个值。

if ($(this).val() == 'QA, Efficiency, Legal, Time, BadDebt, WriteOff, BusinessInterruption') {
   //do something
} 

我想我可以做到这一点,但似乎代码太多了?

if ($(this).val() == 'QA' || $(this).val() == 'Efficiency') {
   //do something
} 

1 个答案:

答案 0 :(得分:2)

您可以使用$.inArray()

var valuesArray = ['QA', 'Efficiency', 'Legal', 'Time', 'BadDebt', 'WriteOff','BusinessInterruption'];

if ($.inArry($(this).val(),valuesArray) !== -1) {
    // value is present
}

或者,在支持Array.indexOf()的浏览器中:

if (valuesArray.indexOf($(this).val()) !== -1) {
    // value is present
}

你也可以使用一个简单的开关:

switch($(this).val()) {
    case 'QA':
    case 'Efficiency':
    case 'Legal':
    case 'Time':
    case 'BadDebt':
    case 'WriteOff':
    case 'BusinessInterruption':
         /* switches continue with all subsequent comparisons until they reach
            a `break`, so this function 'doStuff()' will be executed if *any*
            of the above match */
        doStuff();
    break;
    default:
        noneOfTheAboveMatched();
        break;
}

参考文献: