Jan
2
2011
2
2011
Class: bind een keyup event vast
Deze mini class is ontwikkeld voor bijvoorbeeld AJAX functies. Vaak is een gebruiker aan het typen en verschijnt alvast een naam in het beeld.
Een soort auto fill functie dus. Hier kan je je eigen functie aan vast plakken zodat je er mee kan doen wat je wilt.
Standaard controleert hij pas na 3 chars, om een heel hoog aantal requests te voorkomen.
Als extra check zit er nog in dat als de gebruiker een keyup event veroorzaakt (dus wanneer de gebruiker de toets “loslaat”)
krijgt de gebruiker 800Ms de tijd om nog een toetsaanslag te doen. Gebeurd dit niet, dan vind er een functie aanroep plaats.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script type="text/javascript">
function keyDigger(field, keyUpFunction) {
if (!document.getElementById(field)) return false;
alert(field);
var _self = this;
this.inputElement = document.getElementById(field);
this.charsBeforeAction = 3;
this.intervalTimer = false;
this.eventFunction = keyUpFunction;
this.inputElement.ref = _self;
this.timerMs = 800;
this.bind();
}
keyDigger.prototype.bind = function() {
this.inputElement.onkeyup = function(execute) {
if (isNaN( this.ref.intervalTimer)) {
clearTimeout(this.ref.intervalTimer);
}
var me = this;
if (this.value.length > this.ref.charsBeforeAction) {
this.ref.intervalTimer = setTimeout(function() {
me.ref.eventFunction(me.value);
}, this.ref.timerMs);
}
}
}
window.onload = function() {
//voorbeeld
var t = new keyDigger('yourName', keyUp);
}
function keyUp(param) {
document.getElementById('test').value = "Je schreef : " +(param);
}
</script>
</head>
<body>
<input type="text" id="yourName" />
<input type="text" id="test" />
</body>
</html>
Related Posts
Reageer
Code Library
- Apache en .htaccess (6)
- HTML en CSS (4)
- Javascript (26)
- MySQL (14)
- PHP (27)
- Zend Framework (1)
Tags
Nu online
- 0 Members.
- 4 Guests.

Een artikel door Willem




