2011-08-22 87 views
4

我试图检查用户输入到输入文本字段的值。一旦他们输入值并单击提交,如果它们输入的值与数组中的值匹配,我试图产生一个结果,如果不在数组中,则返回另一个结果。jQuery:根据数组中的值检查输入值

基本上具有简单的形式,如下所示:

<form id="checkinput" action="#"> 
<input type="text" value="" id="couponcode" name="coupon code name"/> 
<input type="button" id="submit" value="Submit"/> 
</form> 

当点击“#submit”,如果在“#couponcode”输入字段的值等于在数组的值,加一类“成功”的转换为ID为“success_show”的div,否则会显示“您的优惠券代码错误”等简单警报。

我将有一个隐藏的div,一旦成功,向div中添加一个“成功”类。

该阵列会周期性变化,并且在不同的时间会有不同的数量。一些简单的像这样:

var arr = [ "CA238", "Pete", 8, "John" ]; 
+0

出于好奇,我可以看到这个网站的现场演示,如果您有它运行起来? – Baz1nga

+0

我不会在JS中保留这些数组我会使用AJAX来检查数据库或PHP数组 – Jdoonan

回答

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 
} 
0

以及你的阵列需要这样的创建:现在,当你

var a={ couponCode:"CA238", name: "peter"} 

与到位:

var a=[]; 
a["couponcode"]="CA238"; 
a["name"]="peter"; 

或JSON如下想要验证你的表单运行它通过所有的inout元素使用说$.each,然后获得每个输入的ID,并从你创建的数组或从JSON CO获取相同的vlaue比较两个值,看看它是否正确。

代码将是这样的:

$("input").each(function() 
{ 

    var id=$(this).attr("id"); 
    if(a[id]) // for json a.hasOwnProperty(id) 
    { 
     if($(this).val()!==a[id]) 
     { 
     // do the necessary 
     } 

} 
}); 
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/

Best way to find if an item is in a JavaScript array?

OR

使用采取HEL inArray

$("#submit").click(function(e){ 
e.preventDefault(); 

    var val=$("#couponcode").val(); 
    if($.inArray(arr,val)) 
     alert("success"); 

}); 

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