0
0

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 1 year has passed since last update.

Ionic Framework / Capacitor / StencilAdvent Calendar 2022

Day 7

Ionicでformの外側にあるion-buttonでsubmitする方法

Last updated at Posted at 2022-12-06

今まで、Formをsubmitするためのion-buttonはform内に置く必要がありました。こんな感じですね。

<form #f="ngForm">
  <ion-button type='submit' [disabled]="!f.form.valid">フォーム送信</ion-button>
</form>

なのですが、モバイルデザインの現実問題として、headerにbuttonを置き、Formをcontentに置くことは多々あります。そういった場合、今まではclickイベントでフォーム送信を行っていました。

<ion-header>
    <ion-buttons slot="end">
      <ion-button (click)="submit()" [disabled]="!f.form.valid">
        フォーム送信
      </ion-button>
    </ion-buttons>
</ion-header>
<ion-content>
    <form #f="ngForm">
      // 様々なInput要素
    </form>
</ion-content>

AngularのForm APIを使ってdisabledを機能させてるとはいえ、FormイベントをClickで代用するのは違和感ありますよね。

しかし、Ionic v6.3からFormの外側にあるbuttonでsubmitイベントを実行できるようになりました!🎉利用方法はFormにidを設定して、ion-button にform属性でそのidを指定するだけ。

<form id="exampleForm">
  <!-- Form controls -->
</form>
<ion-button type="submit" form="exampleForm">Submit</ion-button>

ちなみにバイブ処理的には、Formを見つけて、そのForm内にJavaScriptでbuttonを作成して、submitしたあとで、そのbuttonをremoveしてるようですね。

これによってより気持ちよくコーディングできるようになりますね!!

それではまた。

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?