tengo un codigo que funciona muy bien, pero quisiera agregarle un aditivo, como el de cargar la imagen.
les pongo el codigo
Código:
<!-- Javascript --> <script> $(document).ready(function () { $('#avatar').FileInput({ placeholder: 'No hay archivo seleccionado...' }); }) </script> <!-- / Javascript --> <div class="drop-avatar-zone"> <div class="avatar-thumbnails"> <img src="avatar/avatar.png">aca tiene ya cargada una imagen, pero debe ser reemplazada por la seleccionada </div> </div> <input type="file" id="avatar"> (function() { var FileInput; FileInput = function($input, options) { if (options == null) { options = {}; } this.options = $.extend({}, FileInput.DEFAULTS, options || {}); this.$input = $input; this.$el = $('<div class="file-input"><span class="file-filename"></span><div class="file-actions"></div></div>').insertAfter($input).append($input); this.$filename = $('.file-filename', this.$el); this.$clear_btn = $(this.options.clear_btn_tmpl).addClass('boton rojo').appendTo($('.file-actions', this.$el)); this.$choose_btn = $(this.options.choose_btn_tmpl).addClass('boton azul').appendTo($('.file-actions', this.$el)); this.onChange(); $input.on('change', (function(_this) { return function() { return $.proxy(_this.onChange, _this)(); }; })(this)).on('click', function(e) { return e.stopPropagation(); }); this.$el.on('click', function() { return $input.click(); }); this.$choose_btn.on('click', function(e) { return e.preventDefault(); }); return this.$clear_btn.on('click', (function(_this) { return function(e) { $input.wrap('<form>').parent('form').trigger('reset'); $input.unwrap(); $.proxy(_this.onChange, _this)(); e.stopPropagation(); return e.preventDefault(); }; })(this)); }; FileInput.DEFAULTS = { choose_btn_tmpl: '<a href="#" class="boton azul">Seleccionar</a>', clear_btn_tmpl: '<a href="#" class="boton rojo"><i class="fa fa-times"></i> Borrar</a>', placeholder: null }; FileInput.prototype.onChange = function() { var value; value = this.$input.val().replace(/\\/g, '/'); if (value !== '') { this.$clear_btn.css('display', 'inline-block'); this.$filename.removeClass('placeholder'); return this.$filename.text(value.split('/').pop()); } else { this.$clear_btn.css('display', 'none'); if (this.options.placeholder) { this.$filename.addClass('placeholder'); return this.$filename.text(this.options.placeholder); } else { return this.$filename.text(''); } } }; $.fn.FileInput = function(options) { return this.each(function() { if (!$.data(this, 'FileInput')) { return $.data(this, 'FileInput', new FileInput($(this), options)); } }); }; $.fn.FileInput.Constructor = FileInput; }).call(this);