前提
こんにちは。Vue.jsの学習をしているプログラミング初心者です。
今、日付を選択するselect,期間を選択するselectと二つのseelctを作成して、そのそれぞれの選択結果を取得しシフト時間を入力できるカレンダーみたいなものを表示たいと思っています。
困っていることは期間のセレクトの値はとってこれたのですが、日付のセレクトでyear,month,dateの値をそれぞれバラバラに取得したくてv-bind値を以下のように設定しましたがReferenceErrorが出てしまいます。以下に該当のソースコードを張ります。
html
1<div class="timesheet" v-if="isTimeSheet"> 2 <select v-model="dateselect" @change="dateselect"> 3 <option key="">--選択してください--</option> //ここのoptionのyear,month,dateそれぞれ取得したい。 4 <option v-for="(date, index) in getdates" :key="index" :year="date.year" :month="date.month" :date="date.date">{{ date.text }}</option> 5 </select> 6 <select v-model="periodselect" @change="periodselect"> 7 <option value="">--選択してください--</option> 8 <option value="week">1週間</option> 9 <option value="twoweek">2週間</option> 10 <option value="month">1ヶ月</option> 11 </select> 12</div>
Vue.js
1export default { 2 data:function(){ 3 return{ 4 getdates:this.getdate() 5 } 6 }, 7 methods: { 8 active: function() { 9 this.isActive = !this.isActive; 10 }, 11 timesheet: function() { 12 this.isTimeSheet = !this.isTimeSheet; 13 }, 14 getdate: function() { 15 const today = new Date(); 16 const selectdates=[]; 17 const selectdate = today.getFullYear()+"年"+today.getMonth()+1+"月"+today.getDate()+"日"; 18 const week = ['日', '月', '火', '水', '木', '金', '土'] 19 for(let i = 1; i < 16; i++){ 20 //取得する日付の値を設定 21 let param = Date.now() + i * 86400000 22 //値から日付を取得 23 let date = new Date(param); 24 //dateから年月日曜を取得 25 let y = date.getFullYear(); 26 let m = date.getMonth()+1; 27 let d = date.getDate(); 28 let w = date.getDay(); 29 30 //月を2桁に揃える 31 if(m < 10){ m = '0'+m }; 32 //日を2桁に揃える 33 if(d < 10){ d = '0'+d }; 34 35 //出力形式 36 let textFormat = y+'年'+m+'月'+d+'日'+'('+week[w]+')'; 37 // let valueFormat = y+'-'+m+'-'+d; 38 selectdates.push({"text":textFormat,"year":y,"month":m,"date":d}); 39 } 40 console.log(selectdates); 41 return selectdates; 42 }, 43 dateselect :function(){ 44 console.log(this.selectedOption); 45 }, 46 periodselect:function(e){ 47 console.log(e.target.value); 48 }, 49 }, 50 computed:{ 51 selectedOption() { 52 const selected = this.getdates.find(date.year); //eferenceError: date is not definedと出ます。 53 return selected 54 } 55 } 56 }
初心者で質問の意図もコードもわかりづらいかと思いますがご教授いただければ幸いです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/15 07:12