javascript
  • jquery
  • 2012-04-13 75 views 0 likes 
    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'文件類型。如果文件類型正確,則顯示加載欄並上傳表單。如果文件類型不正確,則顯示n個警報,說明文件類型不正確,但不顯示加載欄,也不上載表單。

    下面是驗證,但我的問題是我在哪裏放置的代碼,以便當用戶點擊「上傳」按鈕,如果不正確的文件類型然後警報出現,它不會上傳文件,如果文件類型是正確的,然後它顯示加載欄和上傳文件。

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

    回答

    0

    你不能只是把你的startImageUpload驗證碼,如果驗證失敗,設置你想要的任何錯誤域,並返回false?

    +0

    我會嘗試這一點,並儘快給您:) – user1324106 2012-04-13 01:17:29

    +0

    您好,我把我更新的代碼在我的問題的底部。問題在於警報根本沒有出現。我做錯了什麼,我的代碼是否遵循你所說的? – user1324106 2012-04-13 01:25:26

    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()回報?

    希望幫助...

    相關問題