前提・実現したいこと
フォームAに契約日、フォームBに契約期間を入力すると、フォームCに契約終了日(1日前)が出てくるようにしたいです。
例:
フォームA→ 2021/2/1
フォームB→ 1 (年)
フォームC→ 2022/1/31
又同時に、フォームBが3か月や半年だった時、0.3や0.6と入力して結果を出したいのですが反応しません。
できればそちらも実現したいと考えております。
発生している問題・エラーメッセージ
1日前にしたいので、date1.getDate() -1とマイナスしたところ、2月0日という様に月初のみ月をまたぐことができません。
該当のソースコード
html
1<div class="form form07"> 2 <label for="agreement_start" class="form_name">契約開始日</label> 3 <input id="agreement_start" type="date" name="agreement_start" class="form07_date"> 4</div> 5 6<div class="form form08"> 7 <label for="agreement_kikan" class="form_name" >契約期間</label> 8 <input id="agreement_kikan" type="number" name="agreement_kikan" placeholder="半角数字"> 9</div> 10 11<div class="form"> 12 <label for="agreement_end" class="form_name">契約終了日</label> 13<input id="agreement_end" type="text" name="agreement_end"/> 14</div>
js
1jQuery(function($) { 2 jQuery(document).on('blur', '#agreement_start, #agreement_kikan', function(){ 3 var date1 = document.getElementById("agreement_start").value; 4 var days = document.getElementById("agreement_kikan").value; 5 var date2 = addDate(date1, days); 6 jQuery("#agreement_end").val(date2); 7 }); 8}); 9 10/* 11 *日付の差分日数を返却します。 12 */ 13function addDate(date1Str, days) { 14 var date1 = new Date(date1Str); 15 16 // パラメータで取得した日数を加算 17 date1.setFullYear(date1.getFullYear() + Number(days)); 18 19 // Date型を(YYYY/MM/DD)形式へ成型して返却 20 return [date1.getFullYear() , date1.getMonth() + 1, date1.getDate() - 1].join('/'); 21}
補足情報(FW/ツールのバージョンなど)
こちらのサイト様のコードを参考に記述しております。
jsはまだ勉強中のため、わからない事の方が多いのですがどうかお知恵を貸していただきたいです。
補足が必要でしたら教えていただけますと幸いです。どうかよろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/02/14 09:40
2022/02/14 15:28 編集
2022/02/14 15:21
2022/02/14 15:31
2022/02/15 00:46