質問編集履歴

1

コードを追記

2022/05/14 12:26

投稿

G14
G14

スコア3

test CHANGED
File without changes
test CHANGED
@@ -32,3 +32,198 @@
32
32
  ```
33
33
 
34
34
 
35
+ # 追記情報
36
+
37
+ ```php
38
+ <!DOCTYPE html>
39
+ <html lang="ja">
40
+ <head>
41
+ <meta charset="UTF-8">
42
+ <title>お問い合わせフォーム</title>
43
+ <link rel="stylesheet" href="style.css">
44
+ <script type="text/javascript" src="contact.js"></script>
45
+ </head>
46
+ <body>
47
+ <div><h1>Company Name</h1></div>
48
+ <div><h2>お問い合わせ</h2></div>
49
+ <div>
50
+ <form action="confirm.php" method="post" name="form" onsubmit="return validate()">
51
+ <h1 class="contact-title">お問い合わせ 内容入力</h1>
52
+ <p>お問い合わせ内容をご入力の上、「確認画面へ」ボタンをクリックしてください。</p>
53
+ <div>
54
+ <div>
55
+ <label>お名前<span>必須</span></label>
56
+ <input type="text" name="test.name" placeholder="例)山田太郎" value="">
57
+ </div>
58
+ <div>
59
+ <label>ふりがな<span>必須</span></label>
60
+ <input type="text" name="test.furigana" placeholder="例)やまだたろう" value="">
61
+ </div>
62
+ <div>
63
+ <label>メールアドレス<span>必須</span></label>
64
+ <input type="text" name="test.email" placeholder="例)guest@example.com" value="">
65
+ </div>
66
+ <div>
67
+ <label>電話番号<span>必須</span></label>
68
+ <input type="text" name="test.tel" placeholder="例)0000000000" value="">
69
+ </div>
70
+ <div>
71
+ <label>性別<span>必須</span></label>
72
+ <input type="radio" name="sex" value="男性" checked> 男性
73
+ <input type="radio" name="sex" value="女性"> 女性
74
+ </div>
75
+ <div>
76
+ <label>お問い合わせ項目<span>必須</span></label>
77
+ <select name="item">
78
+ <option value="">お問い合わせ項目を選択してください</option>
79
+ <option value="ご質問・お問い合わせ">ご質問・お問い合わせ</option>
80
+ <option value="ご意見・ご感想">ご意見・ご感想</option>
81
+ </select>
82
+ </div>
83
+ <div>
84
+ <label>お問い合わせ内容<span>必須</span></label>
85
+ <textarea name="content" rows="5" placeholder="お問合せ内容を入力"></textarea>
86
+ </div>
87
+ </div>
88
+ <button type="submit">確認画面へ</button>
89
+ </form>
90
+ </div>
91
+ </body>
92
+ </html>
93
+ ```
94
+
95
+
96
+ ```JavaScript
97
+ var validate = function() {
98
+
99
+ var flag = true;
100
+
101
+ removeElementsByClass("error");
102
+ removeClass("error-form");
103
+
104
+ // お名前の入力をチェック
105
+ if(document.form["test.name"].value == ""){
106
+ errorElement(document.form["test.name"], "お名前が入力されていません");
107
+ flag = false;
108
+ }
109
+
110
+ // ふりがなの入力をチェック
111
+ if(document.form["test.furigana"].value == ""){
112
+ errorElement(document.form["test.furigana"], "ふりがなが入力されていません");
113
+ flag = false;
114
+ } else {
115
+ // メールアドレスの形式をチェック
116
+ if(!validateKana(document.form["test.furigana"].value)){
117
+ errorElement(document.form["test.furigana"], "ひらがな以外の文字が入っています");
118
+ flag = false;
119
+ }
120
+ }
121
+
122
+ // メールアドレスの入力をチェック
123
+ if(document.form["test.email"].value == ""){
124
+ errorElement(document.form["test.email"], "メールアドレスが入力されていません");
125
+ flag = false;
126
+ } else {
127
+ // メールアドレスの形式をチェック
128
+ if(!validateMail(document.form["test.email"].value)){
129
+ errorElement(document.form["test.email"], "メールアドレスが正しくありません");
130
+ flag = false;
131
+ }
132
+ }
133
+
134
+ // 電話番号の入力をチェック
135
+ if(document.form.tel["test.tel"] == ""){
136
+ errorElement(document.form["test.tel"], "電話番号が入力されていません");
137
+ flag = false;
138
+ } else {
139
+ // 電話番号の形式をチェック
140
+ if(!validateNumber(document.form["test.tel"].value)){
141
+ errorElement(document.form["test.tel"], "半角数字のみを入力してください");
142
+ flag = false;
143
+ } else {
144
+ if(!validateTel(document.form["test.tel"].value)){
145
+ errorElement(document.form["test.tel"], "電話番号が正しくありません");
146
+ flag = false;
147
+ }
148
+ }
149
+ }
150
+
151
+ // お問い合わせ項目の選択をチェック
152
+ if(document.form["test.item"].value == ""){
153
+ errorElement(document.form["test.item"], "お問い合わせ項目が選択されていません");
154
+ flag = false;
155
+ }
156
+
157
+ // お問い合わせ内容の入力をチェック
158
+ if(document.form["test.content"].value == ""){
159
+ errorElement(document.form["test.content"], "お問い合わせ内容が入力されていません");
160
+ flag = false;
161
+ }
162
+
163
+ return flag;
164
+ }
165
+
166
+
167
+
168
+ var errorElement = function(form, msg) {
169
+ form.className = "error-form";
170
+ var newElement = document.createElement("div");
171
+ newElement.className = "error";
172
+ var newText = document.createTextNode(msg);
173
+ newElement.appendChild(newText);
174
+ form.parentNode.insertBefore(newElement, form.nextSibling);
175
+ }
176
+
177
+
178
+ var removeElementsByClass = function(className){
179
+ var elements = document.getElementsByClassName(className);
180
+ while (elements.length > 0){
181
+ elements[0].parentNode.removeChild(elements[0]);
182
+ }
183
+ }
184
+
185
+ var removeClass = function(className){
186
+ var elements = document.getElementsByClassName(className);
187
+ while (elements.length > 0) {
188
+ elements[0].className = "";
189
+ }
190
+ }
191
+
192
+ var validateMail = function (val){
193
+ if (val.match(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/)==null) {
194
+ return false;
195
+ } else {
196
+ return true;
197
+ }
198
+ }
199
+
200
+
201
+ var validateNumber = function (val){
202
+ if (val.match(/[^0-9]+/)) {
203
+ return false;
204
+ } else {
205
+ return true;
206
+ }
207
+ }
208
+
209
+
210
+ var validateTel = function (val){
211
+ if (val.match(/^[0-9-]{6,13}$/) == null) {
212
+ return false;
213
+ } else {
214
+ return true;
215
+ }
216
+ }
217
+
218
+
219
+ var validateKana = function (val){
220
+ if (val.match(/^[ぁ-ん]+$/) == null) {
221
+ return false;
222
+ } else {
223
+ return true;
224
+ }
225
+ }
226
+
227
+ ```
228
+
229
+