0

我正在使用 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。我不想要这个。如果我选择任何图像,那么只有提交。

帮我...

4

1 回答 1

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验证输入的内容。

于 2013-08-06T13:14:57.577 回答