Connecting Tech Pros Worldwide Forums | Help | Site Map

IE6 Null or not an Object error

Newbie
 
Join Date: Sep 2008
Posts: 5
#1: Sep 4 '08
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]

Dormilich's Avatar
Moderator
 
Join Date: Aug 2008
Location: Leipzig, Germany
Posts: 3,658
#2: Sep 4 '08

re: IE6 Null or not an Object error


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
Newbie
 
Join Date: Sep 2008
Posts: 5
#3: Sep 4 '08

re: IE6 Null or not an Object error


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.  
Newbie
 
Join Date: Sep 2008
Posts: 5
#4: Sep 4 '08

re: IE6 Null or not an Object error


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!
acoder's Avatar
Site Moderator
 
Join Date: Nov 2006
Location: UK
Posts: 14,581
#5: Sep 4 '08

re: IE6 Null or not an Object error


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