以下のjavascript変数に保存されたフォームがあります。
var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='startImageUpload(this);' class='imageuploadform' >" +
"<label> Image File: <input name='fileImage' type='file' class='fileImage' /></label><br/>" +
"<input type='submit' name='submitImageBtn' class='sbtnimage' value='Upload' /></label></form>
ユーザーが送信ボタンをクリックするとわかるように、以下の「startImageUpload」関数に送信されます。
function startImageUpload(imageuploadform){
$(imageuploadform).find('.imagef1_upload_process').css('visibility','visible');
$(imageuploadform).find('.imagef1_upload_form').css('visibility','hidden');
sourceImageForm = imageuploadform;
return true;
}
ユーザーが送信をクリックすると、読み込みバーが表示され、フォームがアップロードされます。
ユーザーがフォームの送信ボタンをクリックすると、ファイルが「png」または「gif」ファイルタイプであるかどうかを確認する簡単なJavaScript検証を実行したいと思います。ファイルの種類が正しい場合は、読み込みバーを表示してフォームをアップロードします。ファイルの種類が正しくない場合は、ファイルの種類が正しくないという警告を表示しますが、読み込みバーは表示せず、フォームをアップロードしません。
以下は検証ですが、私の質問は、ユーザーが「アップロード」ボタンをクリックしたときに、ファイルタイプが正しくない場合はアラートが表示され、ファイルをアップロードしないように、コードをどこに配置すればよいかということです。ローディングバーを表示し、ファイルをアップロードします。
$(".imageFile").change(function() {
var val = $(this).val();
switch(val.substring(val.lastIndexOf('.') + 1).toLowerCase()){
case 'gif': case 'jpg': case 'png':
return true;
break;
default:
$(this).val('');
alert("not an image");
return false;
break;
}
});