我在同一个类中有几个输入,如果这些输入中的任何一个为空,则返回false。我想要做的是,如果任何输入是负数,则返回false。我认为使用正则表达式可能有一种方法可以做到这一点,但我不确定如何去做。
这是我到目前为止所做的。
CacheLoader
答案 0 :(得分:1)
可能应该返回this.value =='';
答案 1 :(得分:0)
想法是检查3个条件的值是否为:
===
以清空字符串""
Number
会导致NaN
您可以使用image检查条件并返回值。以下是它如何工作的示例:
$(".check-inputs").on("click", function () {
console.log(anyInvalid());
});
function anyInvalid () {
return Array.prototype.some.bind($(".quantity"))(function (elem) {
return elem.value === "" || isNaN(Number(elem.value)) || Number(elem.value) < 0;
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="quantity" value="1"/><br/>
<input type="text" class="quantity" value="2"/><br/>
<input type="text" class="quantity" value="3"/><br/>
<input type="text" class="quantity" value="-4"/><br/>
<input type="text" class="quantity" value=""/><br/>
<button class="check-inputs">Check Inputs</button>
答案 2 :(得分:0)
使用Array.prototype.every()函数检查数组中的每个输入是否都通过了给定的测试。首先,使用jQuery的.get()将输入作为数组。然后通过Array.prototype.every运行元素,如果任何元素在给定的测试中失败,它将返回false。
function arePositiveOrZero(selector){
return $(selector)
.get() // Convert to array
.every( node => parseInt(node.value) >= 0 ) // Check all elements are >= 0
}
// Tests that log to the console
console.log({hasNeg: arePositiveOrZero('.hasNeg')}) // false
console.log({hasBlank: arePositiveOrZero('.hasBlank')}) // false
console.log({hasZero: arePositiveOrZero('.hasZero')}) // true
console.log({allPos: arePositiveOrZero('.allPos')}) // true
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="hasNeg" type="text" value="1">
<input class="hasNeg" type="text" value="-1">
<input class="hasZero" type="text" value="0">
<input class="hasZero" type="text" value="1">
<input class="hasBlank" type="text" value="1">
<input class="hasBlank" type="text" value="">
<input class="allPos" type="text" value="2">
<input class="allPos" type="text" value="3">
如果您不想包含零,只需将测试功能更改为node => node.value > 0
答案 3 :(得分:0)
我找到了一个适合我的解决方案,如果找到的数字小于零,则返回false。我说它比现在更复杂。
var $nonneg = $('.quantity').filter(function(){
return this.value < 0;
});
if ($nonneg.length != 0) {
return false;
}