2016-12-26 60 views
1

我有一個窗體,用戶可以填寫的細節和點擊添加參加者按鈕可以添加多達9人的細節。我得到的用戶名,選中的複選框項目ID和項目數量和存儲數組內的值,並通過這些值在URL中添加選定的項目和創建用戶在第一次點擊,但當我點擊第二或第三或多次其增加重複值內陣列。我想檢查值是否存在,如果它需要增加數量並且不想在數組中添加它。檢查數組中的重複值,並添加如果不存在使用jquery

這裏是我的代碼

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

回答

2

使用jQuery.inArray() jQuery中。 jQuery.inArray()方法與JavaScript的原生方法.indexOf()類似,因爲它在找不到匹配項時返回-1。如果陣列中的第一個元素匹配值,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 
    } 
}); 
+0

感謝您的響應...,以增加其是否已經存在於陣列的數量應該在哪裏我把代碼? – Uidev123

+0

我已添加代碼以增加數量,但其未顯示1而不是2代表重複ID ....這是我的代碼 – Uidev123

+0

jQuery(「#btnadd2」)。click(function(){ var qty = 1; var allVals = []; var nameatt = jQuery(「#txtAttendeeNames」)。val(); jQuery(「。big:checked」)。each(function(){var qty = parseInt(jQuery(this).parents ).nextAll()。children()。find('input [name =「quantity」]')。val()); if(jQuery.inArray(jQuery(this).val(),allVals)== - 1){ allVals.push(jQuery(this).val()); } else { qty = parseInt(jQuery(this).parents()。nextAll()。children()。find('input [ (i = 0; i Uidev123

相關問題