LoginSignup
2
1

More than 5 years have passed since last update.

v-calenderにて生成されるinputタグにclassとnameを指定してあげる

Posted at

実現したいこと

Vueのライブラリにあるv-calenderを使用したいけど、Bootstrap4のform-controlを適応したり、nameを指定することでPOSTでデータ処理したい。

とりあえず出来たこと

datepicker.component

<template>
    <v-date-picker
        mode='range'
        v-model='selectedDate'
        show-caps
        :input-props='{ name: this.nameProp, class: "input form-control", placeholder: "実施期間を入力するにはここをタップ"}'
    >
    </v-date-picker>
</template>


<script>
    import VCalendar from 'v-calendar'
    import 'v-calendar/lib/v-calendar.min.css'

    export default {
        data() {
            return {
                selectedDate: {
                    start: null,
                    end: null,
                }
            };
        },
        props : ['nameProp']
    };
</script>

<style scoped>

</style>
form.blade.php
<div class="form-group">
 <label for="total_schedule">全体スケジュール</label>
 <date-picker id="total_schedule" name-prop="total_schedule"></date-picker>
</div>

補足

ライブラリのドキュメントを読むとどうやら、生成されるinputをいじりたいときは:input-propsをいじってくれとのこと
サンプルを多少いじり、クラスとかは普通に指定できた。

View(Blade)からnameを渡してあげる方法がわからず(Axiosとか使って裏で渡してあげるのは面倒だった)試行錯誤した結果とりあえず動くという段階にたどり着いたコードがこれ

学び

フォームは全部Vueにしとく方が、結局読みやすくて改修しやすくなりそうな予感
初心者が部分的に使ってみようとすると煩雑になりがち

注意

このコードはあくまで初学者が、自分のプロジェクトにて部分的に使ってみた結果なんとか動いたというレベルのコードです。アンチパターンなのかもしれませんがとりあえず自分用の覚書も兼ねてメモしました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1