Revision: 10040
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at December 4, 2008 15:53 by flashpro
Initial Code
//++++++++++++++++++++++++++++++++++++
// YUI textarea
// 4-12-2008 - Edwart Visser
// maximum amount of character in textarea
//
// HOW TO USE:
// write textarea as follows <textarea class="max" rel="20"></textarea>
// class "max" is needed
// rel defines the maximum amount of characters
//
// REQUIRES: yahoo-dom-event.js
//++++++++++++++++++++++++++++++++++++
var Dom = YAHOO.util.Dom;
var Event = YAHOO.util.Event;
YAHOO.namespace("lutsr");
YAHOO.lutsr.maxTextarea = {
init : function() {
// get all textarea's and extend them
var textareaEls = Dom.getElementsByClassName("max");
if(textareaEls.length > 0) {
for(var i=0; i < textareaEls.length; i++) {
this.extend(textareaEls[i]);
}
}
},
extend : function(el) {
el.maxChars = el.getAttribute("rel");
// add display of amount of characters in textarea
var statusDisplay = document.createElement("div");
statusDisplay.className = "display";
el.statusDisplayEl = statusDisplay;
// set status text
var statusText = "You have " + el.maxChars + " left for your message.";
statusDisplay.innerHTML = statusText;
el.parentNode.insertBefore(statusDisplay,el);
// add onchange event
Event.addListener(el,"keyup",this.changeStatusMessage,el);
},
changeStatusMessage : function(e,el) {
var curLength = el.value.length;
var leftLength = el.maxChars - curLength;
if(leftLength > 0) {
// no problem
if(Dom.hasClass(el.statusDisplayEl,"error")){
Dom.removeClass(el.statusDisplayEl,"error")
}
var statusText = "You have " + leftLength + " left for your message.";
el.statusDisplayEl.innerHTML = statusText;
} else {
// string length too long
if(!Dom.hasClass(el.statusDisplayEl,"error")){
Dom.addClass(el.statusDisplayEl,"error")
}
var statusText = "You're message has too many characters.";
el.statusDisplayEl.innerHTML = statusText;
}
}
}
initPage = function() {
YAHOO.lutsr.maxTextarea.init();
}
Event.on(window,"load",initPage);
Initial URL
http://www.lutsr.nl/yui/textarea/
Initial Description
Initial Title
YUI maximum length for textarea (with counter)
Initial Tags
Initial Language
JavaScript