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

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

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

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

jQuery

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

Q&A

解決済

1回答

8614閲覧

JavaScriptにて、動的に追加したフォームにjquery UI datepickerを使ってカレンダーを表示させたい

susususu

総合スコア12

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2018/05/06 16:58

編集2018/05/06 17:02

実現したいこと

ユーザーが『追加ボタン』を押すと追加されるフォームに『jquery UI datepicker』を使ってカレンダーを表示したい。

困っていること

あらかじめ作っておいたフォームには問題なくカレンダーが表示されるものの、ユーザーが追加したフォームに対しては
カレンダーが表示されない。
ググってみたところ、

$('.date').not('.hasDatePicker').datepicker(); $('.date').removeClass('hasDatepicker').datepicker();

このいずれかを指定すればよい、との情報を得て試してみるものの動かず…

ソースコード

HTML

HTML

1<form method="post" action="confirm.php"> 2 <div class="form-group new-form"> 3 <label>フォーム</label> <input type="button" value="+追加" class="add-form"> <input type="button" value="ーすべて削除" class="remove-form"> 4 <br> 5 <input type="text" name="organizer" class="form-control"> 6 </div> 7</form> 8

JavaScript

1$(function() { 2 $(".datepicker").datepicker(); 3}); 4 5$(function() { 6 $(".add-form").click(function() { 7 if ($(".new-form").children().length < 13) { 8 $(".new-form").append('<input type="select" class="datepicker form-control plus" style="margin-bottom: 16px;">'); 9 } 10 }); 11});

このソースコードで、あらかじめこちらで用意しておいたフォームには問題なくカレンダーが表示されます。
しかし、ユーザーがボタンで後から追加したフォームにはカレンダーが表示されません。
後から追加されたフォームに対してもカレンダーが表示されるようにしたいです。
ご回答お待ちしています。
よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

それだと現時点で表示されている <input> にしか適用されないため、クリックで <input> を追加した後に、追加した <input> に対して datepicker() を適用しなければなりません。

javascript

1$(function() { 2 $(".add-form").click(function() { 3 if ($(".new-form").children().length < 13) { 4 /* <input> を生成して変数に保存 */ 5 var $input = $('<input type="select" class="datepicker form-control plus" style="margin-bottom: 16px;">'); 6 7 /* 作った <input> をフォームに追加 */ 8 $(".new-form").append($input); 9 10 /* datepicker() 適用 */ 11 $input.datepicker(); 12 } 13 }); 14});

投稿2018/05/06 18:38

yhg

総合スコア2161

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

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

susususu

2018/05/23 16:46

yhg 様 お返事が遅くなってしまい申し訳ありません。 出来ました!!!!!!ありがとうございます!!!!!! 元から作っているフォームにしか適用されていなかったんですね。。。 本当に助かりました、ありがとうございます!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問