gpt4 book ai didi

javascript - jQuery 检查输入值是否在数组中

转载 作者:行者123 更新时间:2023-11-29 23:16:09 25 4
gpt4 key购买 nike

我正在尝试检查输入字段的值是否在数组中,但它似乎不起作用。

这是我试过的:

var postcode1 = [];
for (var i = 21000; i < 21999; i++) {
postcode1.push({ val: i, text: i });
}
console.log(postcode1);

$('#fw_form_field_146').blur(function() {
var val = $("#fw_form_field_146").val();
if( $.inArray(val, postcode1) > -1 ) {
alert('test');
}
});

数组正在 console.log 中输出,但当我填写输入字段时检查不起作用。

最佳答案

由于 postcode1 它是一个包含 val-text 值的数组,您必须通过传递 callback< 来使用 map 方法 提供函数作为参数。

此外,您需要使用 Number 构造函数,因为从 input 返回的 value 是一个 string 而您的given 数组包含primitive numbers

var postcode1 = [];
for (var i = 21000; i < 21999; i++) {
postcode1.push({ val: i, text: i });
}

$('#fw_form_field_146').blur(function() {
var val = $(this).val();
if( $.inArray(Number(val), postcode1.map(({val}) => val)) !== -1 ) {
alert('test');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="fw_form_field_146"/>

另一种方法是使用 includes 方法。

var postcode1 = [];
for (var i = 21000; i < 21999; i++) {
postcode1.push({ val: i, text: i });
}

$('#fw_form_field_146').blur(function() {
var val = $(this).val();
if(postcode1.map(({val})=> val).includes(Number(val))) {
alert('test');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="fw_form_field_146"/>

关于javascript - jQuery 检查输入值是否在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52720990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com