3

私は基本的な注文フォームに取り組んでおり、最初から作成できるかどうかを確認したいと考えています.

12 個のアイテムがリストされたテーブルとアイテム数量のテキスト入力フィールドで構成されるフォームがあります。私がやりたいことは、入力された数量をチェックするコードをフォームに実行させ、これらの値を配列内の価格に関連付けることです。

これまでのところ、私は配列を持っています:

var juicePrice = new Array();
juicePrice["citrusZing"]=20.00;
juicePrice["strawberrySmooth"]=22.00;
juicePrice["carrotSpin"]=21.50;
juicePrice["Tropical"]=20.75;
...

フォームを実行する方法:

calculateTotal()    
{   
var juiceForm = document.forms["juiceform"];

    //Get a reference to the juice the user Chooses name=selectedJuiceQty":
    var selectedJuiceQty = juiceForm.elements["selectedJuiceQty"];

    for(var i = 0; i < selectedJuiceQty.length; i++);

しかし、フォームからの情報を接続して合計を計算する方法がよくわかりません。誰かが私を正しい方向に向けることができますか? このようなものですか?

for(var i = 0; i < selectedJuiceQty.length; i++){
    var juiceTotal = 0;

    if(selectedJuiceQty[i]>0) {
        juiceTotal += juicePrice[selectedJuiceQty[i].value]*selectedJuiceQty;
        //If we get a match then we break out of this loop
        break;
    }
    return total;
}

各フィールドに同じ名前タグを使用することは可能citrusZingQty = parseInt(document.getElementById("citrusZing").value);ですか、それともアイテムごとに使用する必要がありますか? 次に、すべてのアイテムをリストする必要がありますが、これはあまりエレガントな方法とは思えません。複数のアイテムを選択するとどうなりますか?

誰かが私を正しい方向に向けるために与えることができる助けは素晴らしいでしょう.

4

1 に答える 1

1

だから、やりたいことができる。マイケルはコメントでこれを指摘しましたが、見過ごされている可能性があります。

var myPrices = new Object();
myPrices['eggs'] = 1.50;
myPrices['bread'] = 1.00;
// ...

次に、フォーム フィールドをループして、「myPrices」オブジェクトをチェックできます。

編集

コメントで質問に答えるには、すべての入力フィールドに同じ名前を使用しません。おそらく、フォームのループが簡単になります。ただし、入力タグの id/class を使用することは、私の意見では良い解決策ではありません。HTML id/class は CSS/Javascript 操作のためにあり、それを使用して入力が表す果物を識別することは、プロジェクトに取り組んでいる他の開発者には明らかではありません (これはあなたにとって小さなプロジェクトかもしれませんが、開始しないのが最善です)悪い習慣)。各入力には、それが表すジュース/ドリンクにちなんで名前を付けます。

于 2012-07-15T00:29:06.563 に答える