我正在尝试将用户输入的值检查到输入文本字段中。一旦他们输入值并单击提交,如果他们输入的值与数组中的值匹配,我试图生成一个结果,如果不在数组中,则产生另一个结果。
基本上有这样一个简单的形式:
<form id="checkinput" action="#">
<input type="text" value="" id="couponcode" name="coupon code name"/>
<input type="button" id="submit" value="Submit"/>
</form>
单击“#submit”时,如果“#couponcode”输入字段中的值等于数组中的值,则将一个“success”类添加到id为“success_show”的div中,否则为“您的优惠券代码错误“会显示。
我将有一个隐藏的div并且在成功之后,为div添加一类“成功”。
阵列会定期更改,并且在不同时间会有不同的数量。像这样简单的东西:
var arr = [ "CA238", "Pete", 8, "John" ];
答案 0 :(得分:10)
你可以使用jquery ......
$.inArray(value, array) // returns -1 if value doesn't exist, otherwise returns index
修改强> 如果你不使用jQuery,那么你可以在数组上使用indexOf
if(array.indexOf(value) < 0){ // doesn't exist
// do something
}
else { // does exist
// do something else
}
答案 1 :(得分:3)
function include(arr, obj) {
for(var i=0; i<arr.length; i++) {
if (arr[i] === obj) return true;
}
}
var arr = [ "CA238", "Pete", 8, "John" ];
$("#submit").click(function(e){
e.preventDefault();
var val=$("#couponcode").val();
if(include(arr, val))
alert("success");
});
hel取自Best way to find if an item is in a JavaScript array?
OR
使用inArray
$("#submit").click(function(e){
e.preventDefault();
var val=$("#couponcode").val();
if($.inArray(arr,val))
alert("success");
});
答案 2 :(得分:0)
你可以使用 -
function include(arr,obj) {
return (arr.indexOf(obj) != -1);
}
取自这个问题 - Best way to find if an item is in a JavaScript array?
答案 3 :(得分:0)
你的数组需要像这样创建:
var a=[];
a["couponcode"]="CA238";
a["name"]="peter";
或json如下:
var a={ couponCode:"CA238", name: "peter"}
现在当你想要验证你的表单时,通过所有inout元素运行它使用say $.each
然后获取每个输入的id并从数组中获取相同的vlaue您创建的或从json中比较两个值并查看它是否正确。
代码就像:
$("input").each( function()
{
var id=$(this).attr("id");
if(a[id]) // for json a.hasOwnProperty(id)
{
if($(this).val()!==a[id])
{
// do the necessary
}
}
});