質問編集履歴

1

v-modelをdateに合わせる、初期値を受け皿の変数date…に代入するというコメントに基づき修正しました。しかし、初期値の表示、月末の日にち計算はできませんでした。

2021/11/24 04:05

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -462,6 +462,80 @@
462
462
 
463
463
 
464
464
 
465
+ 追記1
466
+
467
+ v-modelをdateに合わせる、初期値を受け皿の変数date…に代入する
468
+
469
+ というコメントをいただきました。コメントに基づき、以下のように修正しました。
470
+
471
+
472
+
473
+ ```HTML
474
+
475
+ <form>
476
+
477
+ <select v-model="date" @change="getDays"><!--dataYear → dateに変更-->
478
+
479
+ <option v-for="n in 100" v-bind:value="n + 1921" v-bind:key="n">{{(n + 1921) | era}}</option>
480
+
481
+ </select>年
482
+
483
+ <select v-model="date" @change="getDays"><!--dataMonth → dateに変更-->
484
+
485
+ <option v-for="n in 12" v-bind:key="n">{{n}}</option>
486
+
487
+ </select>月
488
+
489
+ <select v-model="date" @change="getDays"><!--dataDay → dateに変更-->
490
+
491
+ <option v-for="n in daysMax" v-bind:key="n">{{n}}</option>
492
+
493
+ </select>日
494
+
495
+ </form>
496
+
497
+ ```
498
+
499
+
500
+
501
+ ```javascript
502
+
503
+ data() {
504
+
505
+ return {
506
+
507
+ date: moment("2000-01-01").toDate(),//dataYear,dataMonth,dataDayから変更
508
+
509
+ daysMax: ''
510
+
511
+ }
512
+
513
+ //(中略)
514
+
515
+ methods: {
516
+
517
+ getDays: function() {//合わせてdataYear → date.getFullYear(), dataMonth → date.getMonth()にそれぞれ変更
518
+
519
+ new Date(this.date.getFullYear(), this.date.getMonth(), 0).getDate();
520
+
521
+ }
522
+
523
+ }
524
+
525
+ ```
526
+
527
+ しかし、初期値の表示、月末の日にち計算はできませんでした。エラー内容は以下の通りです。
528
+
529
+ ```
530
+
531
+ v-on handler: "TypeError: this.date.getFullYear is not a function"
532
+
533
+ ```
534
+
535
+ getFullYearとgetMonthを使用するにあたり、moment("2000-01-01").toDate()でdateをdateObjに合わせたので、問題ないように思うのですが...
536
+
537
+
538
+
465
539
  ### 補足情報(FW/ツールのバージョンなど)
466
540
 
467
541