0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

クレジットカード決済用JavaScript準備③ 特定された入力フォームの中身を取得

Last updated at Posted at 2021-04-23
const pay = () => {
  Payjp.setPublicKey("pk_test_******************"); // PAY.JPテスト公開鍵
  const form = document.getElementById("charge-form");
  form.addEventListener("submit", (e) => {
    e.preventDefault();

    const formResult = document.getElementById("charge-form");
    const formData = new FormData(formResult);

    const card = {
      number: formData.get("order[number]"),
      cvc: formData.get("order[cvc]"),
      exp_month: formData.get("order[exp_month]"),
      exp_year: `20${formData.get("order[exp_year]")}`,
    };
  });
};

window.addEventListener("load", pay);

formData

FormData のコンストラクタに、form 要素の DOM オブジェクトを渡すと自動的にフォームの内容を取り込みます。

const f1 = document.getElementById('f1');
const fd = new FormData(f1);

20210423-133205.png

JavaScript 入門(TechAcademy)
https://javascript.keicode.com/newjs/how-to-use-formdata.php

formData.get("order[number]")

formDataで取得したデータの中でget()で引数にキー名を渡すと、値を返します[umberをgetする]
order[number]はネーム属性値になります。

式の挿入

通常の文字列に式を埋め込むには、以下のような構文を使用していると思います。

`文字列${        }文字列`

${ }の中に変数や式を入れルト展開してくれます。

20${formData.get("order[exp_year]")},
はname属性order[exp_year]に入った値を取得してくれるので
例えば21が入っていれば20と21なので
###2021というようなことになります

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?