Forum Moderators: open
Is there a way that the script could be modified to work in Opera and NN4.x?
It does work partially in Opera but in a odd manner. The count down to how many characters are left doesn't work and when you reach the 255 limit it starts continuing to type at the top, over writting what you have already typed.
Thanks!
Here's the script
<SCRIPT TYPE="text/javascript">
/*
Form field Limiter script- By Dynamic Drive
For full source code and more DHTML scripts, visit [dynamicdrive.com...]
This credit MUST stay intact for use
*/
var ns6=document.getElementById&&!document.all
function restrictinput(maxlength,e,placeholder){
if (window.event&&event.srcElement.value.length>=maxlength)
return false
else if (e.target&&e.target==eval(placeholder)&&e.target.value.length>=maxlength){
var pressedkey=/[a-zA-Z0-9\.\,\/]/ //detect alphanumeric keys
if (pressedkey.test(String.fromCharCode(e.which)))
e.stopPropagation()
}
}
function countlimit(maxlength,e,placeholder){
var theform=eval(placeholder)
var lengthleft=maxlength-theform.value.length
var placeholderobj=document.all? document.all[placeholder] : document.getElementById(placeholder)
if (window.event¦¦e.target&&e.target==eval(placeholder)){
if (lengthleft<0)
theform.value=theform.value.substring(0,maxlength)
placeholderobj.innerHTML=lengthleft
}
}
function displaylimit(theform,thelimit){
var limit_text='<b><span id="'+theform.toString()+'">'+thelimit+'</span></b> characters remaining on your input limit'
if (document.all¦¦ns6)
document.write(limit_text)
if (document.all){
eval(theform).onkeypress=function(){ return restrictinput(thelimit,event,theform)}
eval(theform).onkeyup=function(){ countlimit(thelimit,event,theform)}
}
else if (ns6){
document.body.addEventListener('keypress', function(event) { restrictinput(thelimit,event,theform) }, true);
document.body.addEventListener('keyup', function(event) { countlimit(thelimit,event,theform) }, true);
}
}
</SCRIPT>
//Displays a count down of how many characters are left.
<SCRIPT>displaylimit("document.form.szComments",255)</SCRIPT>
Now for that Opera behavior - which is definitely an oddity. I doubt there's a fix for it either, because this script uses DOM2 features that I don't think Opera supports fully - notably the stopPropagation() method.
Opera, yeah I can understand this. Have to hope Opera corrects this DOM2 issue and fully supports it.
Thanks!