jQuery:根据数组中的值检查输入值

时间:2011-08-22 19:56:32

标签: javascript jquery arrays

我正在尝试将用户输入的值检查到输入文本字段中。一旦他们输入值并单击提交,如果他们输入的值与数组中的值匹配,我试图生成一个结果,如果不在数组中,则产生另一个结果。

基本上有这样一个简单的形式:

<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" ];

4 个答案:

答案 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");

});

http://jsfiddle.net/kCYkx/5/

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");

});

http://jsfiddle.net/kCYkx/6/

答案 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
      }

}
});