質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Pug

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

2332閲覧

PugとjQueryで日付入力とその欄の複製、削除を実装したい

tsu2626

総合スコア12

Pug

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2018/09/30 09:30

前提・実現したいこと

①「入力欄追加」をした際に空欄かつ入力できるように複製したい。
②「日程候補欄」を削除したあとでも「入力欄追加」を押して一個ずつ複製したい。

発生している問題

①「入力欄追加」をした際に日付が入ったまま複製されてしまう。
②「日程候補欄」を削除したあとに「入力欄追加」を押すと一個ずつ増やすことができない

該当のソースコード

pug

1 button.btn.bg-white.mt10.miw100.add_btn(type='button', value='', name='') 入力欄追加 2 div.form-group 3 label(for="candidates") 4 .parent 5 #datepicker.input-group.date 6 .field 7 input.form-control(type='text' name="candidates" placeholder="候補日程")#candidates.form-control 8 .input-group-addon 9 span.glyphicon.glyphicon-calendar 10 button(type='button', value='', name='').btn.trash_btn.ml10 11 | 削除 12 script. 13 $('#datepicker').datepicker({ 14 format: 'yyyy年MMdd日', //日付のフォーマット 15 language:'ja', //日本語表示 16 pickDate: true, 17 pickTime: true, 18 hourStep: 1, 19 minuteStep: 15, 20 secondStep: 30, 21 inputMask: true 22 }); 23 $( function() { 24 "use strict"; 25 var $content = $( '.field:last-child' ); 26 $( '.add_btn' ).on( 'click', function() { 27 $content.clone( true ).appendTo( '.parent' ); 28 } ); 29 $( '.parent' ).on( 'click', '.trash_btn', function() { 30 $( this ).parents( '.field' ).remove(); 31 } ); 32 } ); 33 34 br 35 button(type="submit").btn.btn-info 予定をつくる

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

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

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

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

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

guest

回答1

0

問題1について

clone()だと、入力値も含めてコピーされます。
ですので、cloneした中にあるinputのvalを空にしてあげなければいけません。

問題2について

初期状態で存在する.fieldをAとします。
入力欄追加ボタンを押した時に追加された.fieldをBとします。

:last-childは兄弟要素の最後の要素のセレクタとなります。
入力欄追加を押した時にBが追加される先の要素は.parentです。
Aは#datepicker.input-group.dateの中にあります。
そのため、.field:last-childは、#datepicker.input-group.dateの「A」と.parentに追加された「B」となります。

投稿2018/10/10 16:20

編集2018/10/10 16:21
iidzuka

総合スコア26

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問