在codeigniter中没有文件选择的Ajax表单调用


Ajax form calling without file select in codeigniter

我正在使用CodeIgniter。我使用ajax表单上传图片。我的主要代码是

<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上传并正确加载upload/new_photo

但问题是,如果没有图像选择,如果我点击上传按钮,它将加载上传/new_photo。我不想要这个。如果我选择任何图片,那么只有它是提交的。

帮助我…

给文件输入一个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