| 
 Передача значения переменной - JavaScript Всем привет, изучаю джаваскрипт и столкнулся с проблемой, не могу передать значение с одного фала в другой. Собственно сам код выложу ниже, в чем суть проблему , есть перменная "values" - сумма всех товаров в рублях, ее нужно передать в форму оплаты Яндекс Денег , то есть вот сюда <input id="target" type="text" readonly name="sum"> Пробовал передавать таким способом 
input = document.getElementById('target'); 
target.value =values;"
но ничего не вышло, хотя если я этот код прикреплю в начале файла в таком виде 
values = 0;
input = document.getElementById('target'); 
target.value =values;"
то все работает отлично, может я как-то с областью видимости косячу, код привожу ниже? Заранее спасибо. 
var cart = {};
 
function loadCart(){
    if(localStorage.getItem('cart')){
        cart = JSON.parse(localStorage.getItem('cart'));
       
       showCart();
        
    }
    else {
        $('.main-cart').html('Корзина пуста!');
    }
 
   function showCart(){
    if(!isEmpty(cart))
    {
        $('.main-cart').html('Корзина пуста!');
    }
    else{     
    $.getJSON('goods.json', function (data){
        var goods = data;
        var out = '';
        var values = 0;   
        for(var id in cart){
            values += goods[id].cost * cart[id];
            out += `  <button data-id="${id}" class="del-goods">x</button>    `;
            out += `<img src="img\\${goods[id].img}">`;
            out += `${goods[id].name}`;
            out += `  <button data-id="${id}" class="minus-goods">-</button>  `;
            out += `${cart[id]}`;
            out += `  <button data-id="${id}" class="plus-goods">+</button>   `;
            out += cart[id]*goods[id].cost; //цена за один товар
                    
            out += '</br>';
        }
 
        $('.main-cart').html(out);
        $('.sums').html(`Общая самма товаров: ${values} рублей.`);
        $('.del-goods').on('click', delGoods);
        $('.plus-goods').on('click', PlusGoods);
        $('.minus-goods').on('click', MinusGoods);
        
       
    });
   }
}
 | 
| 
 Используя var внутри function вы делаете переменную доступной только локально внутри function. 
var x = 1;
//тут дотупно x
function a(){
  var y = 2;
  //тут дотупно x, y
  function b(){
    var z = 3;
    //тут дотупно x, y, z
    function c(){
      //тут дотупно x, y, но z == undefinded, т.к. ниже использовано var и объявлена локальная z
      var z = 100500;       
      //тут дотупно x, y, z, где z == 100500, но это никак не влияет на z которая "выше", та всё ещё равна 3, но отсюда уже напрямую не доступна
    }
  }
}
 | 
| 
 Aetae, Спасибо, объявил переменную в начале файла + добавил присваивание значения самой переменной, но все равно ничего не вышло(( 
var cart = {};
var values = 0;
function loadCart(){
    if(localStorage.getItem('cart')){
        cart = JSON.parse(localStorage.getItem('cart'));
       
       showCart();
        
    }
    else {
        $('.main-cart').html('Корзина пуста!');
    }
   function showCart(){
    if(!isEmpty(cart))
    {
        $('.main-cart').html('Корзина пуста!');
    }
    else{     
    $.getJSON('goods.json', function (data){
        var goods = data;
        var out = '';
          
        for(var id in cart){
            values += goods[id].cost * cart[id];
            out += `  <button data-id="${id}" class="del-goods">x</button>    `;
            out += `<img src="img\\${goods[id].img}">`;
            out += `${goods[id].name}`;
            out += `  <button data-id="${id}" class="minus-goods">-</button>  `;
            out += `${cart[id]}`;
            out += `  <button data-id="${id}" class="plus-goods">+</button>   `;
            out += cart[id]*goods[id].cost; //цена за один товар
                    
            out += '</br>';
        }
        $('.main-cart').html(out);
        $('.sums').html(`Общая самма товаров: ${values} рублей.`);
        $('.del-goods').on('click', delGoods);
        $('.plus-goods').on('click', PlusGoods);
        $('.minus-goods').on('click', MinusGoods);
        
        input = document.getElementById('target'); //-----> добавил для передачи значения
        target.value = values;  //-----> добавил для передачи значения
    });
   }
}
       
   
        function delGoods()
        {
            var id = $(this).attr('data-id');
            delete cart[id];
            saveCart();
            showCart();
        }
        function PlusGoods()
        {
            var id = $(this).attr('data-id');
            cart[id]++;
            saveCart();
            showCart();
        }
        function MinusGoods()
        {
            var id = $(this).attr('data-id');
            if(cart[id] == 1)
            {
                delete cart[id];
            }
          else{
            cart[id]--; 
          }
            saveCart();
            showCart();
        }
        function saveCart() {
            //сохраняем корзину
            localStorage.setItem('cart', JSON.stringify(cart));
        }
        function isEmpty(object) {
            for(var key in object)
            if(object.hasOwnProperty(key)) return true;
            return false;
        }
}
function sendSum(){
    input = document.getElementById('target');
    target.value = values;
   
}
$(document).ready(function(){
    loadCart();
    $('.sendSum').on('click', sendSum);
});
 | 
| 
 Цитата: 
 input.value = values | 
| 
 рони, Спасибо исправил, но к сожалению значение он все равно не передает. вывести нужно в id = "target" значение values, уже все перебрал, но решение так и не смог найти <input type="radio" name="paymentType" value="PC">Яндекс.Деньгами</input> <input type="radio" name="paymentType" value="AC">Банковской картой</input> <input type="radio" name="paymentType" value="MC">С мобильного телефона</input> <input type="hidden" name="successURL" value="http://sait.info/success.php"></input> <input type="text" name="label" placeholder="Логин"> <input id="target" type="text" readonly name="sum"> <input type="submit" name="submit-button" value="Перевести"> 
var cart = {};
var values = 0;
function loadCart(){
    if(localStorage.getItem('cart')){
        cart = JSON.parse(localStorage.getItem('cart'));
       
       showCart();
        
    }
    else {
        $('.main-cart').html('Корзина пуста!');
    }
   function showCart(){
    if(!isEmpty(cart))
    {
        $('.main-cart').html('Корзина пуста!');
    }
    else{     
    $.getJSON('goods.json', function (data){
        var goods = data;
        var out = '';
          
        for(var id in cart){
            values += goods[id].cost * cart[id];
            out += `  <button data-id="${id}" class="del-goods">x</button>    `;
            out += `<img src="img\\${goods[id].img}">`;
            out += `${goods[id].name}`;
            out += `  <button data-id="${id}" class="minus-goods">-</button>  `;
            out += `${cart[id]}`;
            out += `  <button data-id="${id}" class="plus-goods">+</button>   `;
            out += cart[id]*goods[id].cost; //цена за один товар
                    
            out += '</br>';
        }
        $('.main-cart').html(out);
        $('.sums').html(`Общая самма товаров: ${values} рублей.`);
        $('.del-goods').on('click', delGoods);
        $('.plus-goods').on('click', PlusGoods);
        $('.minus-goods').on('click', MinusGoods);
        
        input = document.getElementById('target'); //-----> добавил для передачи значения
        input.value = values;  //-----> добавил для передачи значения
    });
   }
}
 | 
| 
 Awrek, может вы не учитываите, что values формируется после ответа сервера? $('.sums').html(`Общая самма товаров: ${values} рублей.`); -- это работает? | 
| 
 рони, Да, это работает отлично. | 
| 
 Awrek, 
$('[name="sum"]').val(values);
вместо Цитата: 
 | 
| 
 рони, Переделал, но к сожалению опять не вышло :( 
function showCart(){
    if(!isEmpty(cart))
    {
        $('.main-cart').html('Корзина пуста!');
    }
    else{     
    $.getJSON('goods.json', function (data){
        var goods = data;
        var out = '';
       
        for(var id in cart){
            values += goods[id].cost * cart[id];
            out += `  <button data-id="${id}" class="del-goods">x</button>    `;
            out += `<img src="img\\${goods[id].img}">`;
            out += `${goods[id].name}`;
            out += `  <button data-id="${id}" class="minus-goods">-</button>  `;
            out += `${cart[id]}`;
            out += `  <button data-id="${id}" class="plus-goods">+</button>   `;
            out += cart[id]*goods[id].cost; //цена за один товар
                    
            out += '</br>';
        }
        $('.main-cart').html(out);
        $('.sums').html(`Общая самма товаров: ${values} рублей.`);
        $('.del-goods').on('click', delGoods);
        $('.plus-goods').on('click', PlusGoods);
        $('.minus-goods').on('click', MinusGoods);
        $('[name="sum"]').val(values);
      //  input = document.getElementById('target'); //-----> добавил для передачи значения
       // input.value = values;  -----> добавил для передачи значения
    });
   }
}
 | 
| 
 Awrek, а если строку 29 перенести в строку 23? | 
| Часовой пояс GMT +3, время: 23:20. |