Fixed content editable focus and data-placeholder attribute.

This commit is contained in:
Martin Edenhofer 2014-10-07 14:58:46 +02:00
parent a80835abb2
commit e8a07ea037

View file

@ -47,6 +47,11 @@
this.options = $.extend( {}, defaults, options) ; this.options = $.extend( {}, defaults, options) ;
// take placeholder from markup
if ( !this.options.placeholder && this.$element.data('placeholder') ) {
this.options.placeholder = this.$element.data('placeholder')
}
this._defaults = defaults; this._defaults = defaults;
this._name = pluginName; this._name = pluginName;
@ -56,6 +61,14 @@
} }
Plugin.prototype.init = function () { Plugin.prototype.init = function () {
// set focus class
this.$element.on('focus', $.proxy(function (e) {
this.$element.closest('.form-control').addClass('focus')
}, this)).on('blur', $.proxy(function (e) {
this.$element.closest('.form-control').removeClass('focus')
}, this))
// process placeholder // process placeholder
if ( this.options.placeholder ) { if ( this.options.placeholder ) {
this.updatePlaceholder( 'add' ) this.updatePlaceholder( 'add' )
@ -177,13 +190,17 @@
// add/remove placeholder // add/remove placeholder
Plugin.prototype.updatePlaceholder = function(type) { Plugin.prototype.updatePlaceholder = function(type) {
var text = this.$element.text().trim() if (!this.options.placeholder) {
return
}
var holder = this.$element
var text = holder.text().trim()
var placeholder = '<span class="placeholder">' + this.options.placeholder + '</span>' var placeholder = '<span class="placeholder">' + this.options.placeholder + '</span>'
// add placholder if no text exists // add placholder if no text exists
if ( type === 'add') { if ( type === 'add') {
if ( !text ) { if ( !text ) {
this.$element.html( placeholder ) holder.html( placeholder )
} }
} }
@ -220,7 +237,7 @@
// try to set error on framework form // try to set error on framework form
parent = this.$element.parent().parent() parent = this.$element.parent().parent()
if ( parent.hasClass('form-group') ) { if ( parent.hasClass('controls') ) {
parent.addClass('has-error') parent.addClass('has-error')
setTimeout($.proxy(function(){ setTimeout($.proxy(function(){
parent.removeClass('has-error') parent.removeClass('has-error')