www.webdeveloper.com
Results 1 to 5 of 5

Thread: Value has no properties

  1. #1
    Join Date
    Jul 2005
    Location
    Windsor, Ont, Canada
    Posts
    15

    Value has no properties

    Hi There, Folks!

    I'm new on the block! Tried searching for similar errors; couldn't find what I needed. Still, the first question appears real basic.

    In the <HEAD>-section i have this code, below. The first two "IF's" work. But, the search-IF " if((theinput.value.search('^[a-zA-Z0-9]+$',"g")<0))" does not work. Why???

    The error message is: "Error: theinput.value has no properties".

    Can you help, pls??

    I look forward to your replies, thanks!
    Bye
    GrahamB

    This is what my experimental <SCRIPT> looks like:
    Code:
    	 <script type="text/javascript" language="javascript">
    	 <!-- 
    	 function ValidateUserID(theinput) {
    		 if(theinput.length>0) {
    			 if(theinput.length<6) {
    				 alert('Your User ID name must have 6 or more characters');
    				 return false;
    			 } 
    			 if((theinput.value.search('^[a-zA-Z0-9]+$',"g")<0)) {
    				 alert('Your User ID may ONLY contain a mix of letters a-z A-Z and/or digits 0-9');
    				 return false;
    			 alert('Exiting true');
    			 return true;
    			 }
    		 } 
    	 }
    	 function PageLoad()
    	 {
    		 document.login['login'].focus();
    	 }
    	 //-->
     </script>
    This is what my <FORM> code looks like:
    Code:
    <form name="login" method="post" action="/login/login.php" onsubmit="return ValidateForm(this)">
     <table cellspacing=4 cellpadding=5 border=1  style="background-color:#FFFFFF;"> 
    	 <p class="qfheader">
    	 <tr>
    		 <td style="background-color:#CCCCCC; font-family:verdana; font-weight:normal; font-size:16px; 
    				 text-align:right;  vertical-align: middle; color:#000000">
    				 <label for="login">
    					 User id: 
    				 </label>
    			 </td>  
    		 <td style="background-color:#CCCCCC; font-family:verdana; font-weight:normal; font-size:16px; 
    				 text-align:left;  vertical-align: middle; color:#000000">
    				 <input type="text" name="login"
    					 onchange="javascript:ValidateUserID(this.value)"
    					 id=login
    					 value="">
    		 </td>
    . . . . etc, etc, ....

  2. #2
    Join Date
    Nov 2002
    Location
    Baltimore, Maryland
    Posts
    12,279
    Try
    Code:
    				 <input type="text" name="login"
    					 onchange="ValidateUserID(this)"
    					 id=login
    					 value="">
    “The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect.”
    —Tim Berners-Lee, W3C Director and inventor of the World Wide Web

  3. #3
    Join Date
    Jan 2005
    Location
    Los Angeles, CA
    Posts
    4,887
    To touch up on to what Charles suggested:
    Code:
     function ValidateUserID(theinput) {
    		 if(theinput.value.length>0) {
    			 if(theinput.value.length<6) {
    				 alert('Your User ID name must have 6 or more characters');
    				 return false;
    			 } 
    			 if((theinput.value.search('^[a-zA-Z0-9]+$',"g")<0)) {
    				 alert('Your User ID may ONLY contain a mix of letters a-z A-Z and/or digits 0-9');
    				 return false;
    			 alert('Exiting true');
    			 return true;
    			 }
    		 } 
    	 }

  4. #4
    Join Date
    Jun 2004
    Location
    Portsmouth UK
    Posts
    2,689
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
    
    <head>
      <title></title>
    <script type="text/javascript" language="javascript">
    	 <!--
    	 function ValidateUserID(theinput) {
    		 if(theinput.length>0) {
    			 if(theinput.length<6) {
    				 alert('Your User ID name must have 6 or more characters');
    				 return false;
    			 }
    			 if((theinput.search(/^[a-zA-Z0-9]+$/g)<0)) {   // Note this LINE
    				 alert('Your User ID may ONLY contain a mix of letters a-z A-Z and/or digits 0-9');
    				 return false;
    			 alert('Exiting true');
    			 return true;
    			 }
    		 }
    	 }
    	 function PageLoad()
    	 {
    		 document.login['login'].focus();
    	 }
    	 //-->
     </script>
    </head>
    <input id="fred" size="10"><input type="button" name="" value="Validate" onclick="ValidateUserID(document.getElementById('fred').value);">
    <body>
    
    </body>
    
    </html>
    Vic

    God loves you and will never love you less.

    http://www.vicsjavascripts.org/Home.htm
    If my post has been useful please donate to http://www.operationsmile.org.uk/

  5. #5
    Join Date
    Jul 2005
    Location
    Windsor, Ont, Canada
    Posts
    15

    Both approaches worked. Thanks!

    Hi Vic, Ultimater and Charles.

    Your ideas worked.

    Key for me were the TWO approaches.
    Code:
    Either:
    IF the function ValidateUserID(input) was called by ValidateUserID(this) 
          then the <script> had to use just "input.value".
    Or:
    IF the function ValidateUserID(input) was called by ValidateUserID(this.value) 
          then the <script> had to use just "input".
    There are some other little gems there, Vic. Like the
    - onclick="ValidateUserID(document.getElementById('fred').value);">, and
    - "http://www.w3.org/TR/html4/loose.dtd
    I'll try these, too!

    Thanks
    GrahamB
    Last edited by GrahamB; 07-06-2005 at 12:51 PM.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles