我更像是一个PHP人,而不是JS - 我认为我的问题更多是语法问题..
我有一个小的jQuery来“验证”并检查输入值。
它适用于单个单词,但我需要数组。
我正在使用jQuery的inArray()
。
var ar = ["value1", "value2", "value3", "value4"]; // ETC...
jQuery(document).ready(function() {
jQuery("form#searchreport").submit(function() {
if (jQuery.inArray(jQuery("input:first"), ar)){
//if (jQuery("input:first").val() == "value11") { // works for single words
jQuery("#divResult").html("<span>VALUE FOUND</span>").show();
jQuery("#contentresults").delay(800).show("slow");
return false;
}
// SINGLE VALUE SPECIAL CASE / Value not allowed
if (jQuery("input:first").val() == "word10") {
jQuery("#divResult").html("YOU CHEAT !").show();
jQuery("#contentresults").delay(800).show("slow");
return false;
}
// Value not Valid
jQuery("#divResult").text("Not valid!").show().fadeOut(1000);
return false;
});
});
现在 - 这个if (jQuery.inArray(jQuery("input:first"), ar))
无法正常运行..我放置的每个值都会被验证为OK。 (甚至是空的)
我只需要验证数组中的值(ar)。
我也尝试了if (jQuery.inArray(jQuery("input:first"), ar) == 1) // 1,0,-1 tried all
我做错了什么?
奖金问题:如何在jQuery中不在数组中?
(相当于PHP if (!in_array('1', $a))
- 我认为它不起作用,需要使用这样的东西:!!~
答案 0 :(得分:54)
您正在将jQuery对象(jQuery('input:first')
)与字符串(数组的元素)进行比较
更改代码以便将输入值(即字符串)与数组元素进行比较:
if (jQuery.inArray(jQuery("input:first").val(), ar) != -1)
如果在数组中找不到元素,inArray
方法会返回-1
,因此红色会回答如何确定元素是否不在数组中,请使用:
if(jQuery.inArray(el,arr) == -1){
// the element is not in the array
};
答案 1 :(得分:1)
关于您的红利问题,请尝试if (jQuery.inArray(jQuery("input:first").val(), ar) < 0)
答案 2 :(得分:0)
值检查的替代解决方案
//Duplicate Title Entry
$.each(ar , function (i, val) {
if ( jQuery("input:first").val()== val) alert('VALUE FOUND'+Valuecheck);
});
答案 3 :(得分:-1)
Array.prototype
属性表示Array
构造函数的原型,并允许您向所有properties
个对象添加新的methods
和Array
。我们可以为此目的创建一个原型
Array.prototype.has_element = function(element) {
return $.inArray( element, this) !== -1;
};
然后像这样使用它
var numbers= [1, 2, 3, 4];
numbers.has_element(3) => true
numbers.has_element(10) => false
参见下面的演示
Array.prototype.has_element = function(element) {
return $.inArray(element, this) !== -1;
};
var numbers = [1, 2, 3, 4];
console.log(numbers.has_element(3));
console.log(numbers.has_element(10));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>