質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1400閲覧

Wordpress contactform7 validationのカスタマイズについて

vanille

総合スコア16

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/06/28 01:34

前提・実現したいこと

いつもありがとうございます。
現在、Wordpressのcontactform7を使って、申込みフォームを作成しております。
予約希望日の第1、第2、第3希望日を違う日を選んで頂けるようにvalidationをカスタマイズしたいです。

発生している問題・エラーメッセージ

動きませんでした。

該当のソースコード

html

1 2<dl> 3<dt><span class="label hissu">必須</span>予約希望日</dt> 4<dd><span style="font-size:0.95rem;">入力欄をクリック後カレンダーから選択してください。</span> 5<label>第1希望</label> 6[date* date-219 id:first] 7<label>第2希望</label> 8[date* date-220 id:second] 9<label>第3希望</label> 10[date* date-221 id:third] 11</dd> 12</dl>

javascript

1<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 2<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> 3<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1/i18n/jquery.ui.datepicker-ja.min.js"></script> 4<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css"> 5<script> 6$(function() { 7 // 祝日を配列で確保 8 var holidays = [ 9'2019-07-30', 10'2019-06-14', 11'2019-06-21', 12]; 13 14 $("#first").datepicker 15 ({ dateFormat: 'yy-mm-dd', 16 minDate: '+1days', 17 maxDate: new Date('2020-03-31'), 18 numberOfMonths: [1,2], 19 beforeShowDay: function(date) { 20 // 祝日の判定 21 for (var i = 0; i < holidays.length; i++) { 22 var htime = Date.parse(holidays[i]); 23 var holiday = new Date(); 24 holiday.setTime(htime); 25 26 // 祝日 27 if (holiday.getYear() == date.getYear() && 28 holiday.getMonth() == date.getMonth() && 29 holiday.getDate() == date.getDate()) { 30 return [false, 'holiday']; 31 } 32 } 33 // 日曜日 34 if (date.getDay() == 0) { 35 return [false, 'sunday']; 36 } 37 // 土曜日 38 if (date.getDay() == 6) { 39 return [false, 'saturday']; 40 } 41 // 月曜日 42 if (date.getDay() == 1) { 43 return [false, 'monday']; 44 } 45 // 水曜日 46 if (date.getDay() == 3) { 47 return [false, 'wednesday']; 48 } 49 // 木曜日 50 if (date.getDay() == 4) { 51 return [false, 'thursday']; 52 } 53 // 平日 54 return [true, '']; 55 }, 56 onselect: function(dateText, inst) { 57 if( false == chkCal1(dateText) ){ 58 frm.elements["date-219"].value = "" ; 59 }else{ 60 $("#date_val").val(dateText); 61 } 62 } 63 }); 64 65}); 66 67 68$(function() { 69 // 祝日を配列で確保 70 var holidays = [ 71'2019-07-30', 72'2019-06-14', 73'2019-06-21', 74]; 75 76 $("#second").datepicker 77 ({ dateFormat: 'yy-mm-dd', 78 minDate: '+1days', 79 maxDate: new Date('2020-03-31'), 80 numberOfMonths: [1,2], 81 beforeShowDay: function(date) { 82 // 祝日の判定 83 for (var i = 0; i < holidays.length; i++) { 84 var htime = Date.parse(holidays[i]); 85 var holiday = new Date(); 86 holiday.setTime(htime); 87 88 // 祝日 89 if (holiday.getYear() == date.getYear() && 90 holiday.getMonth() == date.getMonth() && 91 holiday.getDate() == date.getDate()) { 92 return [false, 'holiday']; 93 } 94 } 95 // 日曜日 96 if (date.getDay() == 0) { 97 return [false, 'sunday']; 98 } 99 // 土曜日 100 if (date.getDay() == 6) { 101 return [false, 'saturday']; 102 } 103 // 月曜日 104 if (date.getDay() == 1) { 105 return [false, 'monday']; 106 } 107 // 水曜日 108 if (date.getDay() == 3) { 109 return [false, 'wednesday']; 110 } 111 // 木曜日 112 if (date.getDay() == 4) { 113 return [false, 'thursday']; 114 } 115 // 平日 116 return [true, '']; 117 }, 118 onselect: function(dateText, inst) { 119 if( false == chkCal2(dateText) ){ 120 frm.elements["date-220"].value = "" ; 121 }else{ 122 $("#date_val").val(dateText); 123 } 124 } 125 }); 126 127 128}); 129 130$(function() { 131 // 祝日を配列で確保 132 var holidays = [ 133'2019-07-05', 134'2019-06-14', 135'2019-06-21', 136]; 137 138 $("#third").datepicker 139 ({ dateFormat: 'yy-mm-dd', 140 minDate: '+1days', 141 maxDate: new Date('2020-03-31'), 142 numberOfMonths: [1,2], 143 beforeShowDay: function(date) { 144 // 祝日の判定 145 for (var i = 0; i < holidays.length; i++) { 146 var htime = Date.parse(holidays[i]); 147 var holiday = new Date(); 148 holiday.setTime(htime); 149 150 // 祝日 151 if (holiday.getYear() == date.getYear() && 152 holiday.getMonth() == date.getMonth() && 153 holiday.getDate() == date.getDate()) { 154 return [false, 'holiday']; 155 } 156 } 157 // 日曜日 158 if (date.getDay() == 0) { 159 return [false, 'sunday']; 160 } 161 // 土曜日 162 if (date.getDay() == 6) { 163 return [false, 'saturday']; 164 } 165 // 月曜日 166 if (date.getDay() == 1) { 167 return [false, 'monday']; 168 } 169 // 水曜日 170 if (date.getDay() == 3) { 171 return [false, 'wednesday']; 172 } 173 // 木曜日 174 if (date.getDay() == 4) { 175 return [false, 'thursday']; 176 } 177 // 平日 178 return [true, '']; 179 }, 180 onselect: function(dateText, inst) { 181 if( false == chkCal3(dateText) ){ 182 frm.elements["date-221"].value = "" ; 183 }else{ 184 $("#date_val").val(dateText); 185 } 186 } 187 }); 188 189 190}); 191 192function chkCal1(myDate){ 193 194 if(frm.elements["date-220"].value == myDate){ 195 alert("第2希望日と同一です。異なる日を設定してください。"); 196 return false; 197 }else if(frm.elements["date-221"].value == myDate){ 198 alert("第3希望日と同一です。異なる日を設定してください。"); 199 return false; 200 }else{ 201 return true; 202 } 203} 204function chkCal2(myDate){ 205 206 if(frm.elements["date-219"].value == myDate){ 207 alert("第1希望日と同一です。異なる日を設定してください。"); 208 return false; 209 }else if(frm.elements["date-221"].value == myDate){ 210 alert("第3希望日と同一です。異なる日を設定してください。"); 211 return false; 212 }else{ 213 return true; 214 } 215} 216function chkCal3(myDate){ 217 218 if(frm.elements["date-219"].value == myDate){ 219 alert("第1希望日と同一です。異なる日を設定してください。"); 220 return false; 221 }else if(frm.elements["date-220"].value == myDate){ 222 alert("第2希望日と同一です。異なる日を設定してください。"); 223 return false; 224 }else{ 225 return true; 226 } 227} 228 229 230 231 232</script> 233

試したこと

以前、htmlで使用していたものを使いました。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

beforeShowDay: function(date) への追加で自己解決できました。
ありがとうございました。

投稿2019/07/16 07:17

vanille

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

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

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

質問する

関連した質問