質問編集履歴

2

新たに出た問題の追記

2019/03/15 05:03

投稿

salmon_0511
salmon_0511

スコア16

test CHANGED
File without changes
test CHANGED
@@ -185,3 +185,151 @@
185
185
  ### 補足情報
186
186
 
187
187
  最終的にformに画像がアップロードされていなければ、alertで「画像が入っていない」と返して、return falseでイベントを終了する機能を作りたいと思っていました。
188
+
189
+
190
+
191
+ ###追記3/15
192
+
193
+ 読み込み後の結果は、onloadイベントで得られるようなので、下記のように書き換えたところ、srcの値を得ることができました。
194
+
195
+ ```javascript
196
+
197
+ $(function(){
198
+
199
+ $('#myfile').change(function(e){
200
+
201
+ //ファイルオブジェクトを取得する
202
+
203
+ var file = e.target.files[0];
204
+
205
+ var reader = new FileReader();
206
+
207
+
208
+
209
+ //画像でない場合は処理終了
210
+
211
+ if(file.type.indexOf("image") <0){
212
+
213
+ alert("画像ファイルを指定してください");
214
+
215
+ return false;
216
+
217
+ };
218
+
219
+
220
+
221
+ reader.onload = (function(file){
222
+
223
+ return function(e){
224
+
225
+ $("#img1").attr("src", e.target.result);
226
+
227
+ $("#img1").attr("title", file.name);
228
+
229
+
230
+
231
+ var src = $("#img1").attr("src");
232
+
233
+ console.log(src);
234
+
235
+ }
236
+
237
+ })(file);
238
+
239
+ reader.readAsDataURL(file);
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+ });
248
+
249
+
250
+
251
+ });
252
+
253
+ ```
254
+
255
+
256
+
257
+ が最終的に私が行いたいsrcに値が入っていない場合、alertしてイベントを終了しようとするコード(下記)を書いてみたものの、alertは実行されませんでした。
258
+
259
+
260
+
261
+ ```javascript
262
+
263
+ $(function(){
264
+
265
+ $('#myfile').change(function(e){
266
+
267
+ //ファイルオブジェクトを取得する
268
+
269
+ var file = e.target.files[0];
270
+
271
+ var reader = new FileReader();
272
+
273
+
274
+
275
+ //画像でない場合は処理終了
276
+
277
+ if(file.type.indexOf("image") <0){
278
+
279
+ alert("画像ファイルを指定してください");
280
+
281
+ return false;
282
+
283
+ };
284
+
285
+
286
+
287
+ reader.onload = (function(file){
288
+
289
+ return function(e){
290
+
291
+ $("#img1").attr("src", e.target.result);
292
+
293
+ $("#img1").attr("title", file.name);
294
+
295
+
296
+
297
+ var src = $("#img1").attr("src");
298
+
299
+ $('#submit').click(function(){
300
+
301
+ if(src === ""){
302
+
303
+ alert("画像をアップロードしてください");
304
+
305
+ return false;
306
+
307
+ }
308
+
309
+
310
+
311
+ });
312
+
313
+ }
314
+
315
+ })(file);
316
+
317
+ reader.readAsDataURL(file);
318
+
319
+
320
+
321
+
322
+
323
+
324
+
325
+ });
326
+
327
+
328
+
329
+ });
330
+
331
+ ```
332
+
333
+
334
+
335
+ これは何が問題なのでしょうか?

1

誤字

2019/03/15 05:03

投稿

salmon_0511
salmon_0511

スコア16

test CHANGED
File without changes
test CHANGED
@@ -94,29 +94,7 @@
94
94
 
95
95
  </p>
96
96
 
97
-
98
-
99
- <!--デバッグ用-->
100
-
101
- <ul>
102
-
103
- <li>Milk</li>
104
-
105
- <li>Bread</li>
106
-
107
- <li>Chips</li>
108
-
109
- <li>Socks</li>
110
-
111
- </ul>
112
-
113
-
114
-
115
97
  </body>
116
-
117
-
118
-
119
-
120
98
 
121
99
  </html>
122
100
 
@@ -196,30 +174,14 @@
196
174
 
197
175
 
198
176
 
199
-
200
-
201
- //デバッグ用
202
-
203
- $("li").hover(
204
-
205
- function () {
206
-
207
- $(this).append($("<span> ***</span>"));
208
-
209
- },
210
-
211
- function () {
212
-
213
- $(this).find("span:last").remove();
214
-
215
- }
216
-
217
- );
218
-
219
-
220
-
221
177
  });
222
178
 
223
179
 
224
180
 
225
181
  ```
182
+
183
+
184
+
185
+ ### 補足情報
186
+
187
+ 最終的にformに画像がアップロードされていなければ、alertで「画像が入っていない」と返して、return falseでイベントを終了する機能を作りたいと思っていました。