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

問題を解決しました。問題は、「input type = hidden」で合計金額を表示しようとしていたことです。読み取り専用属性のテキストに変更したところ、機能しました。

于 2013-05-19T11:16:34.520 に答える