mirror of
https://git.friendi.ca/friendica/friendica-addons.git
synced 2025-07-07 08:58:49 +00:00
jappixmini: include jappix source
This commit is contained in:
parent
61eb1f0d18
commit
302b2820d1
231 changed files with 96082 additions and 2 deletions
116
jappixmini/jappix/js/jquery.placeholder.js
Normal file
116
jappixmini/jappix/js/jquery.placeholder.js
Normal file
|
@ -0,0 +1,116 @@
|
|||
(function($) {
|
||||
$.extend({
|
||||
placeholder : {
|
||||
settings : {
|
||||
focusClass: 'placeholderFocus',
|
||||
activeClass: 'placeholder',
|
||||
overrideSupport: false,
|
||||
preventRefreshIssues: true
|
||||
},
|
||||
debug : false,
|
||||
log : function(msg){
|
||||
if(!$.placeholder.debug) return;
|
||||
msg = "[Placeholder] " + msg;
|
||||
$.placeholder.hasFirebug ?
|
||||
console.log(msg) :
|
||||
$.placeholder.hasConsoleLog ?
|
||||
window.console.log(msg) :
|
||||
alert(msg);
|
||||
},
|
||||
hasFirebug : "console" in window && "firebug" in window.console,
|
||||
hasConsoleLog: "console" in window && "log" in window.console
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// check browser support for placeholder
|
||||
$.support.placeholder = 'placeholder' in document.createElement('input');
|
||||
|
||||
// Replace the val function to never return placeholders
|
||||
$.fn.plVal = $.fn.val;
|
||||
$.fn.val = function(value) {
|
||||
$.placeholder.log('in val');
|
||||
if(this[0]) {
|
||||
$.placeholder.log('have found an element');
|
||||
var el = $(this[0]);
|
||||
if(value != undefined)
|
||||
{
|
||||
$.placeholder.log('in setter');
|
||||
var currentValue = el.plVal();
|
||||
var returnValue = $(this).plVal(value);
|
||||
if(el.hasClass($.placeholder.settings.activeClass) && currentValue == el.attr('placeholder')){
|
||||
el.removeClass($.placeholder.settings.activeClass);
|
||||
}
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
if(el.hasClass($.placeholder.settings.activeClass) && el.plVal() == el.attr('placeholder')) {
|
||||
$.placeholder.log('returning empty because its a placeholder');
|
||||
return '';
|
||||
} else {
|
||||
$.placeholder.log('returning original val');
|
||||
return el.plVal();
|
||||
}
|
||||
}
|
||||
$.placeholder.log('returning undefined');
|
||||
return undefined;
|
||||
};
|
||||
|
||||
// Clear placeholder values upon page reload
|
||||
$(window).bind('beforeunload.placeholder', function() {
|
||||
var els = $('input.placeholderActive' );
|
||||
if(els.length > 0)
|
||||
els.val('').attr('autocomplete','off');
|
||||
});
|
||||
|
||||
|
||||
// plugin code
|
||||
$.fn.placeholder = function(opts) {
|
||||
opts = $.extend({},$.placeholder.settings, opts);
|
||||
|
||||
// we don't have to do anything if the browser supports placeholder
|
||||
if(!opts.overrideSupport && $.support.placeholder)
|
||||
return this;
|
||||
|
||||
return this.each(function() {
|
||||
var $el = $(this);
|
||||
|
||||
// skip if we do not have the placeholder attribute
|
||||
if(!$el.is('[placeholder]'))
|
||||
return;
|
||||
|
||||
// we cannot do password fields, but supported browsers can
|
||||
if($el.is(':password'))
|
||||
return;
|
||||
|
||||
// Prevent values from being reapplied on refresh
|
||||
if(opts.preventRefreshIssues)
|
||||
$el.attr('autocomplete','off');
|
||||
|
||||
$el.bind('focus.placeholder', function(){
|
||||
var $el = $(this);
|
||||
if(this.value == $el.attr('placeholder') && $el.hasClass(opts.activeClass))
|
||||
$el.val('')
|
||||
.removeClass(opts.activeClass)
|
||||
.addClass(opts.focusClass);
|
||||
});
|
||||
$el.bind('blur.placeholder', function(){
|
||||
var $el = $(this);
|
||||
|
||||
$el.removeClass(opts.focusClass);
|
||||
|
||||
if(this.value == '')
|
||||
$el.val($el.attr('placeholder'))
|
||||
.addClass(opts.activeClass);
|
||||
});
|
||||
|
||||
$el.triggerHandler('blur');
|
||||
|
||||
// Prevent incorrect form values being posted
|
||||
$el.parents('form').submit(function(){
|
||||
$el.triggerHandler('focus.placeholder');
|
||||
});
|
||||
|
||||
});
|
||||
};
|
||||
})(jQuery);
|
Loading…
Add table
Add a link
Reference in a new issue