\r\n```\r\n\r\n\r\n### 補足情報(FW/ツールのバージョンなど)\r\n\r\nPHP のバージョン: 7.1.13","answerCount":1,"upvoteCount":0,"datePublished":"2018-05-16T04:29:48.502Z","dateModified":"2022-01-12T10:55:45.698Z","suggestedAnswer":[{"@type":"Answer","text":"分かりにくくなるのでhtmlとjsをコードブロックわけました。\r\n\r\n*質問修正を受けてPHP部分での指摘を削除しました*\r\n\r\nコメントでは書きましたが、close時にreadOnlyにしても、基本はどうあがいてもユーザーからは操作できないので意味がありません。\r\n「pickadateのみで入力させる」というのであれば、最初からreadonlyをつけておくと良いです。\r\n```php\r\n\" required readonly>\r\n```\r\n\r\nJavaScriptにて動的にhtmlを生成しているのなければ、display:none;であっても指定しておけば問題なく動くはずなので、下記のようにしてドキュメント生成時に呼ぶようにしてみてください。\r\n\r\n```js\r\n$(function(){\r\n    $('#date_box').pickadate({\r\n        format: 'yyyy-mm-dd:ddd'\r\n    });\r\n    $('#time_box').pickatime({\r\n        format: 'HH:i', // 24時間表記\r\n        interval: 30,   // 表示間隔\r\n        min: [10,00],   // 予約開始時間\r\n        max: [20,00]    // 予約終了時間\r\n    });\r\n\r\n    $('.modal').modaal();\r\n});\r\n\r\n```","dateModified":"2018-05-16T05:41:19.434Z","datePublished":"2018-05-16T04:56:16.969Z","upvoteCount":0,"url":"https://teratail.com/questions/126414#reply-192519","comment":[{"@type":"Comment","text":"詳しいご回答ありがとうございます。\r\nphpデリミタに関しては省略しておりました。全体をデリミタで囲っております。","datePublished":"2018-05-16T05:21:54.209Z","dateModified":"2018-05-16T05:21:54.209Z"},{"@type":"Comment","text":"なるほどやはりそうでしたか。\r\n質問本文のコードを編集しておいてください。","datePublished":"2018-05-16T05:28:26.911Z","dateModified":"2018-05-16T05:28:26.911Z"},{"@type":"Comment","text":"承知しました。編集しておきます。","datePublished":"2018-05-16T05:34:53.348Z","dateModified":"2018-05-16T05:34:53.348Z"},{"@type":"Comment","text":"よろしくお願いします。編集結果をもって回答の前半部分を調整します。","datePublished":"2018-05-16T05:35:37.796Z","dateModified":"2018-05-16T05:35:37.796Z"},{"@type":"Comment","text":"編集致しました。\r\nお手を煩わせてしまい申し訳ありません。\r\n何卒よろしくお願い致します。","datePublished":"2018-05-16T05:37:37.126Z","dateModified":"2018-05-16T05:37:37.126Z"},{"@type":"Comment","text":"?>はタイプミスでしょうか?","datePublished":"2018-05-16T05:39:51.481Z","dateModified":"2018-05-16T05:39:51.481Z"},{"@type":"Comment","text":"すみません、タイプミスです。\r\n修正いたします。\r\n申し訳ありません。","datePublished":"2018-05-16T05:41:19.813Z","dateModified":"2018-05-16T05:41:19.813Z"}]}],"breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https://teratail.com","name":"トップ"}},{"@type":"ListItem","position":2,"item":{"@id":"https://teratail.com/tags/jQuery%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3","name":"jQueryプラグインに関する質問"}},{"@type":"ListItem","position":3,"item":{"@id":"https://teratail.com/questions/126414","name":"modaalのafter_openなどの設定について"}}]}}}
前提・実現したいこと
modaalでモーダルを開きそのモーダルの中のフォームでpickadate.jsによって日付を変更したいができない。
そのためmodaalの公式サイトからafter_openやafter_close、before_closeなどを試しましたが動きませんでした。
そこでこのmodaal場でpickadate.jsが機能するオプション設定をご教授いただけると幸いです。
よろしくお願い致します。
-----追記-----
起きている現象:日時を入力するフォームをクリックしてもpickadate.jsのカレンダーが起動しない。
実現したいこと:日時を入力するフォームをクリックするとpickadate.jsのカレンダーが起動し、そこで選択した日時が
フォーム内に入力される。
そしてmodaalによるモーダルを閉じて再びmodaalによるモーダルを表示した際も再び日時を編集できるようにする。
modaal公式
pickadate.js公式
発生している問題・エラーメッセージ
該当のソースコード
php
1<div class="scheduleEdit">
2	<a href="#modal" class="modal">集活内容を編集する</a>
3</div>
4
5<div id="modal" style="display:none;">
6
7<?php
8echo '<form action="output.php" method="post" enctype="multipart/form-data">
9		<h4>内容を編集</h4>
10								  
11		<dl>
12		<dt>日付</dt>
13		<dd><input type="text" class="datepicker" id="date_box" name="date" value="'.$row['date'].':'.$row['youbi'].'" required></dd>
14		</dl>
15									  
16		<dl>
17		<dt>時間</dt>
18		<dd><input type="text" class="timepicker" id="time_box" name="time" value="'.$row['time'].'" required></dd>
19		</dl>
20
21		<input type="submit" id="login" name="login" value="確認して作成">
22
23    </form>';
24
25?>
26
27</div>
28
29
30<script>
31
32	function myFunction() {
33	$('#date_box').pickadate({
34		format: 'yyyy-mm-dd:ddd'
35	});
36	$('#time_box').pickatime({
37		format: 'HH:i', // 24時間表記
38        interval: 30,   // 表示間隔
39        min: [10,00],   // 予約開始時間
40        max: [20,00]    // 予約終了時間
41	});
42}
43
44	
45	function ff() {
46    var tt = document.getElementsByClassName('datepicker');
47    tt.readOnly = true;
48  }
49	
50	$('.modal').modaal({
51		after_close: ff,
52		after_open: myFunction,
53	});
54</script>
補足情報(FW/ツールのバージョンなど)
PHP のバージョン: 7.1.13
分かりにくくなるのでhtmlとjsをコードブロックわけました。
*質問修正を受けてPHP部分での指摘を削除しました*
コメントでは書きましたが、close時にreadOnlyにしても、基本はどうあがいてもユーザーからは操作できないので意味がありません。
「pickadateのみで入力させる」というのであれば、最初からreadonlyをつけておくと良いです。
php
1<input type="text" class="datepicker" id="date_box" name="date" value="'.$row['date'].':'.$row['youbi'].':<?php echo $row['youbi'] ?>" required readonly>
JavaScriptにて動的にhtmlを生成しているのなければ、display:none;であっても指定しておけば問題なく動くはずなので、下記のようにしてドキュメント生成時に呼ぶようにしてみてください。
js
1$(function(){
2    $('#date_box').pickadate({
3        format: 'yyyy-mm-dd:ddd'
4    });
5    $('#time_box').pickatime({
6        format: 'HH:i', // 24時間表記
7        interval: 30,   // 表示間隔
8        min: [10,00],   // 予約開始時間
9        max: [20,00]    // 予約終了時間
10    });
11
12    $('.modal').modaal();
13});
14
15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

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

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