检查数组中的重复值,并使用jquery

时间:2016-12-26 05:58:53

标签: javascript jquery

我有一个用户可以填写详细信息的表单,点击添加与会者按钮最多可以添加9个人的详细信息。我正在获取用户名的值,选中的复选框项目ID和项目数量并存储在数组内并在url中传递这些值以添加所选项目并创建用户在第一次单击时但是当我单击第二次或第三次或多次时其内部添加重复值阵列。我想检查是否存在值,如果它需要增加数量并且不想在数组中再次添加它。

这是我的代码

 jQuery(document).ready(function() {
     var allVals = [];
     jQuery("#btnadd2").click(function() { //Clicking on this add attendee button getting values
         var nameatt = jQuery("#txtAttendeeNames").val();
         var qty = jQuery('input[name="qty"]').val(); //increase quantity if selected checkbox id is already present in array   
         jQuery(".big:checked").each(function() {
             allVals.push($(this).val()); //getting selected checkbox value and based on this getting item id which should not exist in array
         });
         for (i = 0; i < allVals.length; i++) { //creating url and updating multi div with this
             var rslt = allVals.join(','
                 '+'
                 custcol_name_of_attendees | '+nameatt+' | +';');
             rslt = jQuery('#multi').val(rslt);
         }
     });
 });

1 个答案:

答案 0 :(得分:2)

在jquery中使用jQuery.inArray()jQuery.inArray()方法类似于JavaScript的本机.indexOf()方法,因为它在找不到匹配项时返回-1。如果数组中的第一个元素与value匹配,则jQuery.inArray()返回0.

jQuery(".big:checked").each(function() {
   if(jQuery.inArray($(this).val(), allVals) == -1) {
     allVals.push($(this).val()); 
   } else {
     // Already present in the array
   }
});