2013-08-06 10 views
0

我正在使用CodeIgniter。我使用ajax表單上傳圖片。我的主要代碼,Ajax表單調用沒有文件在codeigniter中選擇

<div id="new_photo"> 
<?php echo form_open_multipart('upload/upload1','id="my_new"');?> 
<input type="file" name="userfile" size="20" /> 
<input type="submit" value="upload" id="new_photo_upload" name="new_photo_upload" />  
</form> 
</div> 

然後我的腳本,

<script> 
    $(document).ready(function() { 
     $('#my_new').ajaxForm(function() { 
      var baseurl = "<?php echo base_url(); ?>"; 
       $.ajax({ 
        type: "POST", 
        url: baseurl+"upload/new_photo", 
        success: function(r) { 
        $('#new_photo').html(r); 
        }, 
        error: function(){ 
         location.reload(true); 
        } 
       }); 
     }); 
    }); 

</script> 

在這裏,如果我上傳圖像,然後單擊upload,它是通過AJAX和裝載上傳/ new_photo爲正確上傳。

但問題是,沒有圖像選擇,如果我點擊上傳按鈕,它的加載上傳/ new_photo。我不想要這個。如果我選擇任何圖像,那麼只有它提交。

幫我...

+0

您可以在按鈕上執行jQuery事件,並使用preventDefault停止默認操作,檢查是否選擇了文件並正確地繼續運行腳本 –

回答

0

給一個ID,文件輸入:

<input type="file" name="userfile" id="userfile" size="20" /> 

變化的JS:

$(document).ready(function() { 
    $('#my_new').ajaxForm(function() { 
     var baseurl = "<?php echo base_url(); ?>"; 
      $.ajax({ 
       type: "POST", 
       url: baseurl+"upload/new_photo", 
       beforeSubmit: function() { 
        if($("#userfile").val() == ""){ 
         alert('Please select a file to upload!'); 
         return false; 
        } 
       }, 
       success: function(r) { 
       $('#new_photo').html(r); 
       }, 
       error: function(){ 
        location.reload(true); 
       } 
      }); 
    }); 
}); 

查找beforeSubmit其驗證輸入。

相關問題