Connecting Tech Pros Worldwide Help | Site Map
Reply
 
LinkBack Thread Tools Search this Thread
  #1  
Old September 4th, 2008, 01:39 PM
Newbie
 
Join Date: Sep 2008
Posts: 5
Default IE6 Null or not an Object error

Hi,
I need to have a form button disabled until the user enters a valid email address. I get the following error message in IE6

'document.community.EMAIL' is null or not an object

Not great at javascript, and any help would REALLY be appreciated.
TIA

---

Code follows:

[HTML]function checkifempty(){

var email_pattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
var button = document.getElementById("imageField");
var field_value = document.community.EMAIL.value;

if ( (document.community.EMAIL.value == "") || (email_pattern.test(field_value) == false) ) {
button.disabled=true;
return false;
} else {
button.disabled=false;
}
}

if (document.all || document.getElementById) {
setInterval("checkifempty()",100);
}

function emailcheck(form) {
if (document.community.EMAIL.value == "" || document.community.EMAIL.value.indexOf('@', 0) == -1)
alert("Sorry, we cannot process that request. Please try again.");
}

</script>[/HTML]

Last edited by gits; September 4th, 2008 at 01:50 PM. Reason: added code tags
Reply
  #2  
Old September 4th, 2008, 02:16 PM
Dormilich's Avatar
Moderator
 
Join Date: Aug 2008
Location: Leipzig, Germany
Age: 31
Posts: 895
Default

Hi Tia,

I need to see the html code too, in case there went something wrong with the naming (you can't see those issues in the script code).

regards
Reply
  #3  
Old September 4th, 2008, 02:26 PM
Newbie
 
Join Date: Sep 2008
Posts: 5
Default

Awesome, thanks! I stripped all doctypes and css..
Code follows (I hope I did it right this time)

Expand|Select|Wrap|Line Numbers
  1.  
  2.  
  3. <script type="text/javascript">
  4.  
  5. function checkifempty(){
  6.  
  7.     var email_pattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  8.     var button = document.getElementById("imageField");
  9.     var field_value = document.community.EMAIL.value;
  10.  
  11.     if ( (document.community.EMAIL.value == "") || (email_pattern.test(field_value) == false) ) {
  12.         button.disabled=true;
  13.         return false;
  14.     } else {
  15.         button.disabled=false;
  16.         }
  17.     }
  18.  
  19.     if (document.all || document.getElementById) {
  20.         setInterval("checkifempty()",100);
  21.     }
  22.  
  23. function emailcheck(form) {
  24.     if (document.community.EMAIL.value == "" || document.community.EMAIL.value.indexOf('@', 0) == -1)
  25.         alert("Sorry, we cannot process that request. Please try again.");
  26.     }
  27.  
  28. </script>
  29.  
  30.  
  31. <script src="http://recp.mkt32.net/ui/library/formValidate.js" type="text/javascript" language="javascript"></script>
  32. </head>
  33.  
  34. <body>
  35.  
  36. <form name="community" id="community" method="post" action="http://recp.mkt32.net/servlet/UserSignUp?f=112214&postMethod=HTML&m=0&j=MAS2">
  37.     <input type="hidden" name="EMAIL_REQUIRED" value="T" />
  38.     <input type="hidden" name="EMAIL_DATATYPE" value="" />
  39.  
  40.     <label for="EMAIL">Sign up for e-mail updates.</label>
  41.  
  42.     <input type="text" name="EMAIL" id="EMAIL" value="" size="20" maxlength="4000" />
  43.     <input type="image" name="imageField" id="imageField" src="graphics/btn_green_submit.gif" alt="Submit" />
  44. </form>
  45.  
  46. </body>
  47. </html>
  48.  
  49.  
  50.  
Reply
  #4  
Old September 4th, 2008, 04:50 PM
Newbie
 
Join Date: Sep 2008
Posts: 5
Default

It looks like the issue is that IE6 parses the head first, and doesn't recognize the form in the body. If I physically move the script after the form, I no longer get the error. Does this sound correct?

If anyone has any input about this, or other ways to do it, it would be great!

Now with the JS on the page, I'll get validation errors....grrr! IE6!
Reply
  #5  
Old September 4th, 2008, 06:03 PM
acoder's Avatar
Site Moderator
 
Join Date: Nov 2006
Location: UK
Posts: 12,964
Default

It's probably caused by this line:
Expand|Select|Wrap|Line Numbers
  1. setInterval("checkifempty()",100);
Call it onload instead.
Reply
Reply

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Popular Articles

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over 205,248 network members.