0

我有一个存储在下面的 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;
}

它的作用是当用户点击提交时,它会显示一个加载栏并上传表单。

我想执行一个简单的 javascript 验证,当用户单击表单中的提交按钮时,它将检查文件是“png”还是“gif”文件类型。如果文件类型正确,则显示加载栏并上传表单。如果文件类型不正确,则显示文件类型不正确的警报,但不显示加载栏,也不上传表单。

下面是验证,但我的问题是我在哪里放置代码,以便当用户单击“上传”按钮时,如果文件类型不正确,则会出现警报并且它不会上传文件,如果文件类型正确则它显示加载栏并上传文件。

$(".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;
    }
});
4

2 回答 2

0

你必须找出,为什么你没有得到alert().

首先,检查您的val

var val = $(this).val();
alert(val);

如果核心价值有问题,这可能已经给你一个提示。

其次,检查您是否正在输入switch

switch(val.substring(val.lastIndexOf('.') + 1).toLowerCase()){
    alert('In the switch...');
    ...
}

你能检查什么val.substring(val.lastIndexOf('.') + 1).toLowerCase()返回吗?

希望有帮助...

于 2012-04-13T08:50:45.613 回答
0

难道你不能把验证码放在你的startImageUpload中,如果验证失败,设置你想要的任何错误字段,然后返回 false?

于 2012-04-13T01:14:08.467 回答