window.confirm

by yshrkn

HTML

<form action="javascript: alert('Thanks for your order!')">
  <fieldset>
    <legend>Shopping Cart</legend>
    <ul id="shopping-list">
      <li>Macbook Pro</li>
      <li>iPhone 7 Plus</li>
    </ul>
    <input type="submit" id="order-btn" class="btn" value="Order">
  </fieldset>
</form>

CSS

.btn {
  padding: 5px;
  cursor: pointer;
}

#order-btn {
  display: inline-block;
  width: 100%;
}

JavaScript

/**
 * #order-btn ボタンをクリックすると、
 *
 * 「以下の内容でよろしいですか?
 * - #shopping-list のアイテム 1
 * - #shopping-list のアイテム 2」
 *
 * という確認ダイアログを表示し、
 * ユーザがYesを選択した場合にだけ、フォームが送信されるようにしてください。
 *
 */
 
var lists = document.querySelectorAll('#shopping-list > li');
var orderBtn = document.getElementById('order-btn');

orderBtn.addEventListener('click', function(e) {
  var products = lists.length ? "以下の内容でよろしいですか?\n" : "";

  for(var i = 0, len = lists.length; i < len; i++) {
    products += "- " + lists[i].textContent + "\n";
  }

  var result = window.confirm(products);

  if (!result) {
    e.preventDefault();
  }
});