LoginSignup
0
1

More than 3 years have passed since last update.

[JavaScript] Submit without submit button

Posted at

submit ボタン無しで javascript から submit するYO!

<style>
  textarea {
    vertical-align: top;
  }
</style>

<form id='inputs'>
  <p>
    <label for='name'>Name</label>
    <input id='name'>
  </p>

  <p>
    <label for='content'>Content</label>
    <textarea id='content'></textarea>
  </p>
</form>

<script>
  // Meta + Enter で submit しますねん
  inputs.onkeydown = e => {
    // Meta + Enter で処理する
    if (e.key != 'Enter' || !e.metaKey) return;

    // フォーム (HTMLFormElement) を得る
    const form = e.currentTarget;

    // 空の Event を作る
    const form_event = document.createEvent('HTMLEvents')

    // Event 初期化 (submit 機能。イベントチェーンを浮上。キャンセル可)
    form_event.initEvent('submit', true, true);

    // イベントを dispatch できたら……
    if (form.dispatchEvent(form_event)) {
      // submit() メソッドを使える
      form.submit();
    }
  }
</script>

createEvent()HTMLEvents ってのがよく分からない。
取り得るイベント型は "UIEvents", "MouseEvents", "MutationEvents", "HTMLEvents" のいずれかです」で submit に関するコトだから、 HTMLEvents なのかなあ、と

あと dispatchEvent() も、どうしてこれでうまくいくのか説明できないorz

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