🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Pug

Pug(旧Jade)とは、HTMLを書くためのテンプレートエンジン。タグで囲む必要がないなど記述を省略できるため、HTMLの記述が簡単になります。ファイル分割も可能で、変数やループなど便利な機能も備わっています。

Q&A

解決済

1回答

578閲覧

pugで条件分岐ごとに送信先の違うフォームを作成したい

oikkt

総合スコア3

Pug

Pug(旧Jade)とは、HTMLを書くためのテンプレートエンジン。タグで囲む必要がないなど記述を省略できるため、HTMLの記述が簡単になります。ファイル分割も可能で、変数やループなど便利な機能も備わっています。

0グッド

0クリップ

投稿2021/01/13 06:53

#実現したいこと
pug内でif文を使用してformの送信先を変更したい
##現状のコード

pug

1 else if title == 'register' || 'change' 2 if title == 'register' 3 h1 パスワード作成 4 form(method='post' action='/hoge/hoge/register/') 5 div 6 input(type='password' placeholder="パスワード" name='password') 7 button 登録 8 else 9 h1 パスワード変更 10 form(method='post' action='/hoge/hoge/change/') 11 div 12 label(for='screen-password-input') 13 input(type='password' placeholder="パスワード" name='password') 14 button 登録

titleの違いで送信先とh1の文言のみが変わればいいため無駄に思える。

##やってみたができなかったコード

pug

1 else if title == 'register' || 'change' 2 if title == 'register' 3 h1 パスワード作成 4 form(method='post' action='/hoge/hoge/register/') 5 else 6 h1 パスワード変更 7 form(method='post' action='/hoge/hoge/change/') 8 div 9 input(type='password' placeholder="パスワード" name='password') 10 button 登録

この形式では、registerの場合に下のフォーム部分が出なくなってしまった。

何かいい書き方をご存知の方、教えていただけると幸いです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

2つ案がありますのでご確認ください。

タイトルだけ分岐

質問欄にあるコードだとelseで分岐させてますが、条件追加を考慮して明示的に分岐させることをお勧めします。

- var title = 'register' if title === 'register' h1 パスワード作成 if title === 'change' h1 パスワード変更 form(method='post' action=`/hoge/hoge/${title}/`) div input(type='password' placeholder="パスワード" name='password') button 登録

別のobjectを用意する

titleに格納されている内容をkeyとして、別のobjectを作るのもありだと思います。
(もはやtitleという変数名を変えたくなる気もしますが。。。)

- var title = 'register' var data = { 'register': 'パスワード作成', 'change': 'パスワード変更', } h1=data[title] form(method='post' action=`/hoge/hoge/${title}/`) div input(type='password' placeholder="パスワード" name='password') button 登録

投稿2021/06/16 17:57

編集2021/06/17 04:04
runnynose

総合スコア508

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oikkt

2021/06/17 03:14

ありがとうございます。 ちなみに、h1のテキスト部分を変えたい場合はいかがでしょうか?
runnynose

2021/06/17 04:05

h1も変更になっているのに気づきませんでした。。。 回答欄を修正しましたので、再度ご確認くださいm(__)m
oikkt

2021/08/16 12:20

大変遅くなってしまい申し訳ありませんが、ベストアンサーにさせていただきました。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問