0

インタラクティブなメニューを開発する必要がある学校のプロジェクトに取り組んでいます。私は JavaScript と html を数か月間学んでいるため、JavaScript と html の多くの側面に関する知識が限られています。ユーザーが理論的に均一なアイテムを購入できるようにする均一なメニューを作成しています (実際には支払いオプションを追加していません)。

あなたが行った選択を表示し、あなたが行った選択を引き継いで、確認メッセージを表示する関数または類似のものを作成できるようにするための助けが必要です.

例えば

上のスクリーンショットで、ユーザーが 2 つの小さなブレザーを欲しがっていたとします。したがって、ユーザーは小さいをクリックし、数量の入力をクリックして 2 を入力します。ユーザーは注文の確認をクリックすると、次のような確認メッセージが表示されます。

You have chosen to confirm 2 small sized blazers for $400. Confirm?

問題は、ユーザーが必要とするサイズとアイテムの数によって異なるこのメッセージを作成する方法がわからないことです。

jsFiddleのサンプル コード: あまり意味がない場合は申し訳ありません。問題を説明するために最善を尽くしたので、重要な詳細を見逃している可能性があります。もしそうなら、教えてください。

HTML:

    <td>Blazer (All Sizes) - $200</td>
    <td><button onclick="small()">Small</button> 
    <p><button onclick="medium()">Medium</button>  </p>
    <button onclick="large()">Large</button> </td>
    <td><button onclick="quantitynumber()">Enter Quantity</button> </td>
    <td><button onclick="confirmorder()">Confirm Order</button> 

JS:

var blz = 0  
function small()
  {
      blz = confirm ('You have selected size: Small. Confirm?')
  }
   function medium()
  {
      blz = confirm ('You have selected size: Medium. Confirm?')
  }
   function large()
  {
      blz = confirm ('You have selected size: Large. Confirm?')
  }

 function quantitynumber()
 {
     blz = prompt ('Enter the number of Blazer(s) to order')
     blz1 = blz * 200
        if ( blz == 1) {
    blz1 = confirm ('You have chosen to order 1 Blazer for $' + blz1 + '. Confirm?')
    }

            else if ( blz >=2  && blz <= 5) {
    blz1 = confirm ('You have chosen to order ' + blz + ' Blazers for $' + blz1 + '. Confirm?')         
    }

    else if (blz >5) {
        alert('There is a limit of 5 Blazers per customer.')
        blz = null
        blz1= null
    }
    else if (blz = isNaN || blz == '') {
        alert ('Please type in a valid number.')
    }

 }
function confirmorder()
{
    if (blz == small && blz >= 1 && blz <= 5) {
    blz1 = confirm ('You have chosen to confirm ' + blz + ' small sized Blazers for $' + blz1 + '. Confirm?')
    }

}
4

2 に答える 2

0

簡単な解決策は、注文オブジェクトの配列を作成することです。array.push() 関数を使用して、注文を可変長配列にプッシュできます。これにより、事前に何も知らなくても、複数の注文を追跡できます。次に、すべての注文をループして、それに応じてメッセージを作成できます。

function order(item,quan,price)
{
    this.item = item;
    this.quan = quan;
    this.price = price;
}

var orders = [];

orders.push(new order("shirt",50,200));

alert("You have chosen to confirm " + orders[0].quan + " " + orders[0].item + "(s) for " + orders[0].price + ". Confirm?");
于 2013-10-20T04:36:00.277 に答える