以下は私のJavaScriptコードであり、ユーザーがフォームの「アップロード」ボタンをクリックすると、「imageValidation」でチェックを行い、ファイル入力が正しいかどうかを確認し、正しい場合は「startImageUpload()」関数に、ファイル入力が正しくない場合、「画像ではありません」という警告を表示し、「startImageUpload」関数に移動しないようにする必要があります。
問題は、これをまったく行っていないことです。ユーザーが [アップロード] ボタンをクリックしても、アラートは表示されず、アップロードも行われず、何も起こりません。上記の段落を達成するには何が必要ですか?
以下はフォームです。
var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='imageClickHandler(this); return false;' 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>");
以下は、ユーザーが「アップロード」ボタンをクリックすると、以下のこの関数に従います。
function imageClickHandler(){
if(imageValidation()){
startImageUpload(imageuploadform);
}
}
以下は、ファイル入力を検証する imageValidation() 関数ですが、これが正しく機能しているかどうかわかりません。
function imageValidation() {
$(".fileImage").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('');
// error message here
alert("not an image");
return false;
break;
}
});
}
以下は、入力ファイルの検証を試みる前に機能することがわかっている「startImageUpload()」関数です。
function startImageUpload(imageuploadform){
$(imageuploadform).find('.imagef1_upload_process').css('visibility','visible');
$(imageuploadform).find('.imagef1_cancel').css('visibility','visible');
$(imageuploadform).find('.imagef1_upload_form').css('visibility','hidden');
sourceImageForm = imageuploadform;
return true;
}