homepage Welcome to WebmasterWorld Guest from 54.197.108.124
register, free tools, login, search, pro membership, help, library, announcements, recent posts, open posts,
Pubcon Platinum Sponsor 2014
Home / Forums Index / Code, Content, and Presentation / JavaScript and AJAX
Forum Library, Charter, Moderator: open

JavaScript and AJAX Forum

    
Can I get this JavaScript to work in NN4/Opera?
Need JavaScript to work in NN4/Opera as well!
The_Warden




msg:1488836
 7:05 pm on Sep 13, 2002 (gmt 0)

I've obtain a JavaScript from DynamicDrive. The script restritcs a TEXTAREA element to a specific amount of characters. Now this script works great in IE, Mozilla, and Netscape 6/7.

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>

 

tedster




msg:1488837
 6:22 am on Sep 14, 2002 (gmt 0)

There's definitely no easy fix for NN4. If there's any way at all to accomplish the job, it would require a whole re-think of the code plus a browser sniffer.

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.

The_Warden




msg:1488838
 5:28 pm on Sep 16, 2002 (gmt 0)

Yeah I figured this would be a major challenge. Might have to start forcing my users to use the latest browsers. It's starting to get difficult to produce code that works for new and old browsers.

Opera, yeah I can understand this. Have to hope Opera corrects this DOM2 issue and fully supports it.

Thanks!

Global Options:
 top home search open messages active posts  
 

Home / Forums Index / Code, Content, and Presentation / JavaScript and AJAX
rss feed

All trademarks and copyrights held by respective owners. Member comments are owned by the poster.
Home ¦ Free Tools ¦ Terms of Service ¦ Privacy Policy ¦ Report Problem ¦ About ¦ Library ¦ Newsletter
WebmasterWorld is a Developer Shed Community owned by Jim Boykin.
© Webmaster World 1996-2014 all rights reserved