在两个函数之间简单地添加变量

时间:2013-05-17 13:22:45

标签: javascript dom

问题如下。每次按下“Dodaj”按钮时,项目都会添加到html列表中。我需要在单独的元素上显示项目的总成本;在我的情况下,我使用隐藏输入。我尝试通过在函数中添加总价格的全局变量来声明,然后在函数Izracunaj中读取它。但是,隐藏输入中不显示任何值。

代码:

<script type="text/javascript">
        var total= 0;

        function AddItem()
        {
            var startingPrice= document.getElementById('cena').value;
            var numbers= /^\d+$/;

            //Preverimo, če so kot cena vnešena samo števila
            if(startingPrice.match(numbers))
            {
                if(startingPrice< 10)
                {
                    //Preberemo vrednosti iz vnosnih polj
                    var productName= document.getElementById('productName').value; 
                    var price= document.getElementById('price').value; 

                    //Regularni izraz za validacijo imena
                    var letters= /^[a-zA-Z]+$/;

                    if(!imeIzdelka.match(letters))
                    {
                        alert("Napačen vnos imena. Vnašate lahko samo črke.");
                    }
                    else
                    {
                        //Pridobimo seznam in ustvarimo nov element seznama
                        var list= document.getElementById('list');
                        var product= document.createElement('li');

                        var fullName= productName+ " - " + price+ "€";

                        //Novemu elementu določimo vrednost
                        product.innerHTML = fullName;

                        //Vstavimo element
                        list.insertBefore(product, list.firstChild);

                        _price = parseFloat(price);
                        total= total+ _price;
                    }
                }
                else if(startingPrice> 10)
                {
                    //Preberemo vrednosti iz vnosnih polj
                    var productName= document.getElementById('productName').value;
                    var price= document.getElementById('price').value;              

                    var letters= /^[a-zA-Z]+$/;

                    if(!productName.match(letters))
                    {
                        alert("Napačen vnos imena. Vnašate lahko samo črke.");
                    }
                    else
                    {
                        //Pridobimo seznam in ustvarimo nov element seznama
                        var list= document.getElementById('list');
                        var product= document.createElement('li');

                        //Spremenimo barvo na rdečo
                        product.style.color = "red";

                        //Združimo vrednosti 
                        var fullName= productName + " - " + price+ "€";

                        //Novemu elementu določimo vrednost
                        product.innerHTML = fullName;

                        //Vstavimo element
                        list.insertBefore(product, list.firstChild);

                        _price = parseFloat(price);
                        total= total+ _price;
                    }
                }
            }
            else
            {
                alert("Kot ceno lahko vnašate samo cela števila.");
            }

            //Vrnemo skupno ceno
            return total;
        }
    </script>

    <script type="text/javascript">
        Function Calculate()
        {
            var price = AddItem();
            document.getElementById('totalPrice').value= price;
        }
    </script>

我很抱歉代码不是英语。

以下是输入:

<input type="button" id="add" value="Add Item" onClick = AddItem() />
<input type="button" id="calculate" value="Calculate" onClick = Calculate() />
<input type="hidden" id="totalPrice" />

2 个答案:

答案 0 :(得分:0)

隐藏输入使用的值不是innerHTML

document.getElementById('skupnaCena').innerHTML = cena;

需要

document.getElementById('skupnaCena').value = cena;

在添加字符串之前,您还需要使用parseFloat()将字符串转换为数字。

答案 1 :(得分:0)

我解决了这个问题。问题是,我试图在“输入类型=隐藏”中显示总价格。我用readonly属性将其更改为文本,并且可以正常工作。