2015-08-12 1 views
0

Comment mettre à jour la valeur du champ d'entrée caché avec la valeur de la variable barrel chaque fois qu'un nouveau biscuit est ajouté au cylindre?Mettre à jour la valeur du champ caché avec le tableau chaque fois qu'un nouvel élément est ajouté

Ainsi, lorsque plusieurs biscuits sont ajoutés la valeur du champ peut lire hobnob, Gingernut, Oreo

jQuery ...

var barrel_items = []; 
var barrel = barrel_items; 

$('[data-biscuit]').click(function(){ 
    var biscuit = $(this).data('biscuit'); 
    add_to_barrel(biscuit); 
}); 


function add_to_barrel(item){ 

    var name = ''; 
    switch(item){ 
     case 'custardcream': 
      name = 'Custard Creams'; 
      break; 

     case 'jammydodger': 
      name = 'Jammy Dodgers'; 
      break; 
     case 'bourbon': 
      name = 'Bourbons'; 
      break; 
     case 'nice': 
      name = 'Nice'; 
      break; 
     case 'chocolatedigestive': 
      name = 'Chocolate Digestives'; 
      break; 
     case 'digestive': 
      name = 'Digestive'; 
      break; 
     case 'fruitshortcake': 
      name = 'Fruit Shortcake'; 
      break; 
     case 'gingernut': 
      name = 'Gingernut'; 
      break; 
     case 'oreo': 
      name = 'Oreo'; 
      break; 
     case 'hobnob': 
      name = 'Hobnobs'; 
      break; 
     case 'cookie': 
      name = 'Cookies'; 
      break; 


    } 

    // If item is already there in array, it's index will be returned, 
    // otherwise indexOf() will return -1 
    var indexOfItem = barrel_items.indexOf(item); 
    if(indexOfItem !== -1) 
    { 
     $('.barrel .chosen').eq(indexOfItem).remove(); 
     barrel_items.splice(indexOfItem,1); 
    } 
    else 
    { 
     $('.barrel').append('<div class="chosen">' + name + '</div>'); 
     barrel_items.push(item); 
     //alert(barrel); 

    } 

    if (barrel.length) { 
     $('.form').addClass("show"); 
    } else if (!barrel.length) { 
     $('.form').removeClass("show"); 
    } 

} 

html ...

<input type="hidden" id="barrel" name="barrel" value="" /> 

Répondre

1

simple que cela:

$('[data-biscuit]').click(function(){ 
    var biscuit = $(this).data('biscuit'); 
    add_to_barrel(biscuit); 
    $("#barrel").val(biscuit); //Add biscuit to barrel hidden input 
}); 
+0

ahh merci ce n'est pas tout à fait fais ce que je veux, ton code change la valeur du champ caché, j'en ai besoin pour ajouter et enlever plus d'une valeur. donc le champ caché pourrait contenir «cookie, crème pâtissière, hobnob». – Amesey

+1

alors vous pouvez faire de cette façon -> '$ (" # baril "). Val ($ (" # baril "). Val() + biscuit);' –