@atlassian/aui
Version:
Atlassian User Interface Framework
67 lines (59 loc) • 2.16 kB
JavaScript
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define(['../jquery', '../binder'], factory);
} else if (typeof exports !== "undefined") {
factory(require('../jquery'), require('../binder'));
} else {
var mod = {
exports: {}
};
factory(global.jquery, global.binder);
global.placeholder = mod.exports;
}
})(this, function (_jquery, _binder) {
'use strict';
var _jquery2 = _interopRequireDefault(_jquery);
var _binder2 = _interopRequireDefault(_binder);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
(function () {
// browser supports placeholder, no need to do anything
var temp = document.createElement('input');
if ('placeholder' in temp) {
return;
}
/**
* Displays default text in the input field when its value is empty.
* If the browser supports placeholder input attributes (HTML5), then
* we skip this component.
*
* Usage:
* <pre>
* <input placeholder='Some default text'>
* </pre>
*
* Events thrown: reset.placeholder
*/
_binder2.default.register('placeholder', {
selector: 'input[placeholder]',
run: function run(element) {
var $this = (0, _jquery2.default)(element);
var applyDefaultText = function applyDefaultText() {
if (!_jquery2.default.trim($this.val()).length) {
$this.val($this.attr('placeholder')).addClass('placeholder-shown').trigger('reset.placeholder');
}
};
applyDefaultText();
$this.blur(applyDefaultText).focus(function () {
if ($this.hasClass('placeholder-shown')) {
$this.val('').removeClass('placeholder-shown');
}
});
}
});
})();
});
//# sourceMappingURL=placeholder.js.map