我怎么说“如果价值不等于a,b或c”?

时间:2013-09-02 05:49:04

标签: jquery

$(this).attr('id') == 'zipcode' && $this.value()!=(3, 4, 5)

我在这里尝试做的是调用id为“zipcode”的文本输入字段,然后说“如果zipcode的值不是3,4或5那么......等等”。 ..“我尝试了许多组合,包括||但没有任何效果。我将列出所有可能的邮政编码,并且需要尽可能短的方式来完成。

非常感谢。

完整代码:

function validateStep(step){ if(step == fieldsetCount) return;

var error = 1;
var hasError = false;
$('#formElem').children(':nth-child('+ parseInt(step) +')').find(':input.req:not(button)').each(function(){
    var $this       = $(this);
    var valueLength = jQuery.trim($this.val()).length;
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; 

if(valueLength == "" || $(this).attr('id') =='email' && !emailPattern.test($this.val()) || $(this).attr('id') == 'zipcode' && $this.value()!=(3, 4, 5))   

{
        hasError = true;
        $this.css('background-color','#FFEDEF');
    }
    else
        $this.css('background-color','#fff');

});

5 个答案:

答案 0 :(得分:3)

执行此操作的一种方法是使用indexOf

var values = [1,2,3,4];
var value = parseInt($(this).val());
if(values.indexOf(value) == -1) {
    //dostuff
}

答案 1 :(得分:0)

这有点短:

$(this).attr('id') == 'zipcode' && $this.value() < 3 && $this.value() > 5

答案 2 :(得分:0)

//
//  like this
//
function isnoteqto( value /* ...params*/ ) {
    return Array.prototype.slice.call( arguments, 1 ).every( function ( arg ) { return value !== arg; } );
}
//

答案 3 :(得分:0)

我总是喜欢扩展String原型。这是一个例子。

String.prototype.isNot = function() {
    for( var i = 0; i < arguments.length; i++ ) {
        if( this == arguments[i] ) return false;
    }
    return true;
};

然后你可以做

var value = 'something';

if( value.isNot('value1', 'value2') ) // true

并且

if( value.isNot('something') ) // false

如果您不想扩展String.prototype,可以执行此操作。

var isNot = function( value, args ) {
   for( var i = 0; i < args.length; i++ ) {
       if( value == args[i] ) return false;
   }
   return true;
}

并使用如此。

var value = 'something';

if( isNot(value, ['value1', 'value2']) ) // true

并且

if( isNot(value, ['something']) ) // false

答案 4 :(得分:-1)

$(this).attr('id') == 'zipcode' && !/^(3|4|5)$/.test($(this).val())