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;
}

ユーザーが送信をクリックすると、読み込みバーが表示され、フォームがアップロードされます。

ユーザーがフォームの送信ボタンをクリックすると、ファイルが「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;
    }
});
4

2 に答える 2

0

に検証コードを入れて、検証startImageUploadに失敗した場合は、必要なエラー フィールドを設定して false を返すことはできませんか?

于 2012-04-13T01:14:08.467 に答える
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 に答える