[TYPO3-UG Berlin] Unobtrusive ClearDefault.js
Murphy
murphy at propaganda.io
Sat Mar 22 21:33:54 CET 2008
Hi alle miteinander,
ich habe ein kleines ClearDefault JS geschrieben, das Default-Werte
aus Input Feldern nach onClick event löscht und ggf. wieder einsetzt,
sollte der User keine Eingabe machen und das Feld einfach wieder
verlassen. (Sieht man öfter bei Suchfeldern)
Es basiert auf Prototype und ist unobtrusive: Nach Body onLoad wird
die Site nach Inputfeldern mit der CSS-Klasse "cleardefault" geparsed
und dann werden zwei Observer attached, sprich:
Einfach einbinden, Input-Felder mit der CSS-Klasse "cleardefault"
versehen und es funktioniert Out-of-the-box, sollte ein User kein JS
aktiviert haben passiert halt nix.
(Vielleicht auch ein ganz nettes Beispiel für alle, die sich
Prototype mal ansehen wollen)
Grüße,
Murphy
---
/*
* Cleardefault.js
*/
var ClearDefault = Class.create();
ClearDefault.prototype = {
initialize: function(element) {
this.eventOnClick = this.clearDefaultText.bindAsEventListener(this);
this.eventOnBlur = this.replaceDefaultText.bindAsEventListener(this);
var inputElements = document.getElementsByTagName('input');
for (var i = 0; i < inputElements.length; i++) {
var input = inputElements[i];
if (input.type == 'text' && input.className.match(/\bcleardefault
\b/)) {
// Save current value
if (input.value != '') {
input.defaultText = input.value;
}
Event.observe(input, 'focus', this.eventOnClick);
Event.observe(input, 'blur', this.eventOnBlur);
}
}
},
destroy: function() {
Event.stopObserving(this.element, 'change', this.eventOnKeyUp);
},
clearDefaultText: function(input){
id = Event.element(input).getAttribute("id");
document.getElementById(id).value='';
},
replaceDefaultText: function(input){
id = Event.element(input).getAttribute("id");
if(document.getElementById(id).value == ''){
document.getElementById(id).value = document.getElementById
(id).defaultText;
}
}
}
Event.observe(window, 'load', function() {
new ClearDefault('ClearDefault');
});
---
More information about the TYPO3-berlin
mailing list