根据数组值验证表单

时间:2014-10-17 16:04:07

标签: jquery arrays validation

我对jQuery和编码很新,并且想知道是否有人可以帮助我。

我有两个输入字段(#cp1&#cp2)一个提交按钮(#enter)和两个数组(arr1& arr2)。

arr1 = ["1700", "1000", "1749"];

arr2 = ["001", "002", "003"];

#cp1应为:仅限数字;最多4位数;最少4位数;并且仅在其值等于arr1中的值时才进行验证。

#cp2应为:仅限数字;最多3位数;最少3位数;并且仅在其值等于arr2中的值时才进行验证。

按#enter后,应检查#cp1和#cp2是否都为真,并返回相应的警告信息。

这是我的HTML:

<input id="cp1" type="text" maxlength="4" onkeypress='return event.charCode >= 48 && event.charCode <= 57'></input> 
<input id="cp2" type="text" maxlength="3" onkeypress='return event.charCode >= 48 && event.charCode <= 57'></input> 
<button type="submit" id="enter">Confirmar</button>

如果每个输入只有一个变量,但我不知道如何在数组中搜索正确的值,我就能说得对。

提前致谢!

2 个答案:

答案 0 :(得分:0)

使用jQuery(Fiddle):

arr1 = ["1700", "1000", "1749"];

arr2 = ["001", "002", "003"];

$(function() {
    $("#enter").click(function() {
        if(jQuery.inArray($("#cp1").val(), arr1) == -1)
            alert('Value not in first array');
        if(jQuery.inArray($("#cp2").val(), arr2) == -1)
            alert('Value not in second array');
    });
});

答案 1 :(得分:0)

看一下下面的演示。它使用data属性和arr.filter来执行验证并将数组放入对象中。

$(function() {
  var varr = {
    arr1: ["1700", "1000", "1749"],
    arr2: ["001", "002", "003"]
  };
  $('[data-arr]').on('keypress', function(e) {
    var arr = $(this).data('arr'),
      key = String.fromCharCode(e.charCode),
      val = this.value,
      fnd = varr[arr].filter(function(v) {
        return v.slice(0, val.length + 1) == val + key;
      });
    if(!fnd.length) {
      e.preventDefault();
    }
    console.log(arr, key, val, fnd);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="cp1" data-arr="arr1" type="text" maxlength="4"></input>
<input id="cp2" data-arr="arr2" type="text" maxlength="3"></input>
<button type="submit" id="enter">Confirmar</button>