$(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');
});
答案 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())