0

问题如下。每次按下按钮“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" />
4

2 回答 2

0

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

于 2013-05-19T11:16:34.520 回答
0

隐藏输入使用值而不是 innerHTML

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

需要

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

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

于 2013-05-17T13:35:15.260 回答