Js唯一性效验

需求:使用ajax来添加表单数据,例如输入一个商品的货号,需要将商品的详情添加到表单中,但是不允许重复添加:

第一种解决思路:在ajax请求后,在PHP文件中定义一个全局变量

global $arr;

<?php
if ($_REQUEST['act'] == 'add')
{
   $goods_sn = $_REQUEST['goods_sn'];
   global $arr;
   $arr = array();

if (in_array($goods_sn,$arr))
{
    $msg = '请不要添加重复商品!';
   make_json_error($msg);l 
}
     

}
?>

这样处理之后,有个问题,就是每次请求都清空了,导致没有效验,如果将全局变量定义到php文件开始的地方,第一次请求php的时候,会出现$arr不是数组的警告,而且是动态表单删除的时候,没法去掉数组里面的商品。

二、方法一行不通后,我仔细分析了需求,既然是js发起的请求,为什么不在发起之前做出判断呢,于是我想到了使用Js的全局变量.

 1 var arr = new Array();
 2 $goods_sn   = document.getElementById('goods_sn').value;
 3 
 4     for (var i=0;i<arr.length;i++)
 5     {
 6         if(arr[i] == $goods_sn)
 7         {
 8             alert('请不要重复添加商品!');
 9             return false;
10         }
11     }
12     
13     arr.push($goods_sn);
14 
15 //如果要删除数组的最后一位
16  arr.pop();
原文地址:https://www.cnblogs.com/kafeijiu/p/3064955.html