Error:object expected

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • lefterist
    New Member
    • Jan 2008
    • 3

    Error:object expected

    Good afternoon, I 've got the followin code to validate a form, and get the "error:obje ct expected (line 171 char. 1, line 172, char 2)" even if i tried to solve it (parentheses, function syntax etc).
    Can someone help, its a university homework that has to be delivered by Wednesday! (the first two buttons are name and surname in greek language, ignore the rest)
    Here 's the code: (I've marked bold the lines that are the problem)

    [HTML]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>

    <title>Form validation</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

    <script language="Javas cript">
    // Η συνάρτηση αυτή καλείται για να καθορίσει την εμφάνιση ώρας και ημερομηνίας στο status bar
    function dttm()
    {
    var days=new Array("Κυριακή" ,"Δευτέρα","Τρί τη","Τετάρτη"," Πέμπτη","Παρασκ ευή","Σάββατο") ;
    var mons=new Array("Ιανουάρι ος","Φεβρουάριο ς","Μάρτιος","Α πρίλιος","Μάιος ","Ιούνιος" , "Ιούλιος","Αύγο υστος","Σεπτέμβ ριος","Οκτώβριο ς","Νοέμβριος", "Δεκέμβριος ");
    sys_date=new Date();
    sys_dd=sys_date .getDate();
    sys_mm=sys_date .getMonth();
    sys_yyyy=sys_da te.getYear();
    sys_hours=sys_d ate.getHours();
    sys_mins=sys_da te.getMinutes() ;
    sys_secs=sys_da te.getSeconds() ;
    sys_day=sys_dat e.getDay();
    sys_w_day=days[sys_day];
    sys_w_mon=mons[sys_mm];
    disp_time=sys_h ours+":"+sys_mi ns+":"+sys_secs ;
    window.status=" Σήμερα είναι "+sys_w_day +" "+sys_w_mon +" "+sys_dd+","+sy s_yyyy+". Η ώρα είναι: "+disp_time ;
    setTimeout("dtt m()",1000);
    }
    </script>

    <script type="text/javascript">
    // Η συνάρτηση αυτή καλείται κάθε φορά που γίνεται κλικ στο πλήκτρο 'Submit'
    function Validate() {
    // Αν ισχύουν οι παρακάτω 3 προϋποθέσει ς τότε η φόρμα συμπληρώθηκ ε σωστά
    if (checkIfEmpty() ==true && checkEmail()==t rue && checkPhone()==t rue) {
    alert ('Η φόρμα συμπληρώθηκ ε σωστά!')
    return true;
    }
    else
    return false;
    }

    // Ελέγχει κατά πόσο υπάρχει έστω κι ένα πεδίο κενό
    function checkIfEmpty() {
    if(sirname.valu e=="" || name.value=="" || email.value=="" || telephone.value ==""
    || username.value= ="" || password.value= ="" || passwordmore.va lue=="") {
    window.alert("Π αρακαλώ συμπληρώστε όλα τα πεδία!");
    return(false);
    }
    else
    return(true);
    }

    // Ελέγχει κατά πόσο συμπληρώθηκ ε σωστά το πεδίο 'email' (αν περιλαμβάνε ι τουλάχιστον τους χαρακτήρες '@' και '.')
    function checkEmail() {
    var i=0;
    var pap = false;
    var dot = false;
    var emailExp = false;
    var mail = email.value;
    for(i=0;i<mail. length;i++) {
    if(mail.charAt( i)=="@")
    pap=true;
    if(mail.charAt( i)==".")
    dot=true;
    if(mail.match(e mailExp)=="/^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/")
    emailExp=true;
    }

    if(dot==true && pap==true && emailExp==true; )
    return true;
    else {
    alert("Λάθος email!");
    return false;
    }
    }

    // Ελέγχει κατά πόσο συμπληρώθηκ ε σωστά το πεδίο 'telephone' (αν περιλαμβάνε ι αποκλειστικ ά αριθμητικού ς χαρακτήρες)
    function checkPhone() {
    var i=0;
    var okk=false;
    var phone = telephone.value ;
    for(i=0;i<phone .length;i++) {
    if(parseInt(pho ne.charAt(i))>= 0 && parseInt(phone. charAt(i))=10 )
    ok=true;
    else {
    window.alert("Λ άθος τηλέφωνο!") ;
    ok = false;
    break;
    }
    }
    return ok;
    }
    </script>
    <meta name="Microsoft Border" content="t, default">
    </head>

    <BODY onLoad="dttm(); "><!--msnavigation--><table border="0" cellpadding="0" cellspacing="0" width="100%"><t r><td>

    <p align="center"> <font size="6" color="#666666" ><strong>
    </strong></font><br>
    </p>
    </td></tr><table dir="ltr" border="0" cellpadding="0" cellspacing="0" width="100%"><t r><!--msnavigation--><td valign="top">

    <table border="0">
    <tr>
    <td height="51" colspan="2"><di v align="center">
    <p><b>Φόρμα καταχώρησης στοιχείων</b></p>
    </div></td>
    </tr>
    <tr>
    <td width="155" bgcolor="#9999F F">Όνομα:</td>
    <td width="144"><in put type="text" name="name"></td>
    </tr>
    <tr>
    <td bgcolor="#9999F F">Επώνυμο:</td>
    <td><input type="text" name="sirname"> </td>
    </tr>
    <tr>
    <td bgcolor="#9999F F">E-mail:</td>
    <td><input type="text" name="email"></td>
    </tr>
    <tr>
    <td bgcolor="#9999F F">Τηλέφωνο: </td>
    <td><input type="text" name="telephone "></td>
    </tr>
    <tr>
    <td bgcolor="#9999F F">Όνομα χρήστη(username ):</td>
    <td><input type="text" name="username" ></td>
    </tr>
    <tr>
    <td bgcolor="#9999F F">Συνθηματικό( password):</td>
    <td><input type="password" name="password" ></td>
    </tr>
    <tr>
    <td bgcolor="#9999F F">Επανάληψη Συνθηματικο ύ:</td>
    <td><input type="password" name="passwordm ore"></td>
    </tr>
    <tr>
    <td bgcolor="#9999F F">Φύλλο:</td>
    <td><p>
    <label>
    <input name="sex" type="radio" value="radio">
    Άνδρας</label>
    <br>
    <label>
    <input type="radio" name="sex" value="radio">
    Γυναίκα</label>
    <br>
    </p></td>
    </tr>
    <tr>
    <td bgcolor="#9999F F">Κατάσταση :</td>
    <td><select name="situation ">
    <option>Ανήλικο ς</option>
    <option>Άγαμο ς</option>
    <option>Αρραβων ιασμένος</option>
    <option>Παντρεμ ένος</option>
    </select></td>
    </tr>
    <tr>
    <td width="155" height="18" align="right" bgcolor="#bcf6f 0" td> <hr> </td>
    <td align="left" td bgcolor="#bcf6f 0" width="144"> <hr> </td>
    </tr>
    <tr>
    <td></td>
    <td align="right">< a href="about_us. htm">About us</a>
    </td>
    </tr>
    </table>
    <p>
    <input type="button" name="Button" value="Submit" onClick="Valida te()">
    <input type="button" name="Button" value="Reset" onClick="Valida te()">

    </p>
    </BODY>

    </html>[/HTML]
    Last edited by gits; Jan 14 '08, 10:13 PM. Reason: added code tags
  • acoder
    Recognized Expert MVP
    • Nov 2006
    • 16032

    #2
    In checkIfEmpty() on line 44, you're checking sirname.value [sic], name.value, etc., but these are not global. You need to change this to, e.g. document.forms[formName].elements[elemName] where formName is the name of the form and elemName is the name of the form element. Alternatively, give the form elements IDs and access them using document.getEle mentById(theID) .

    Comment

    • lefterist
      New Member
      • Jan 2008
      • 3

      #3
      So I have to give my form a name, and then give each button a name such as "form.butto n" so that the function can recongnize it globally?
      It mustn't be this. After all, why is this smaller form that checks less things working?

      [HTML]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      <html>
      <head>
      <title>Form validation</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <script type="text/javascript">
      // Η συνάρτηση αυτή καλείται κάθε φορά που γίνεται κλικ στο πλήκτρο 'Validate'
      function Validate() {
      // Αν ισχύουν οι παρακάτω 3 προϋποθέσει ς τότε η φόρμα συμπληρώθηκ ε σωστά
      if (checkIfEmpty() ==true && checkEmail()==t rue && checkPhone()==t rue) {
      alert ('Συγχαρητήρι α! Η φόρμα συμπληρώθηκ ε σωστά!')
      return true;
      }
      else
      return false;
      }

      // Ελέγχει κατά πόσο υπάρχει έστω κι ένα πεδίο κενό
      function checkIfEmpty() {
      if(sirname.valu e=="" || name.value=="" || email.value=="" || telephone.value =="") {
      window.alert("Π αρακαλώ συμπληρώστε όλα τα πεδία!");
      return(false);
      }
      else
      return(true);
      }

      // Ελέγχει κατά πόσο συμπληρώθηκ ε σωστά το πεδίο 'email' (αν περιλαμβάνε ι τουλάχιστον τους χαρακτήρες '@' και '.')
      function checkEmail() {
      var i=0;
      var pap = false;
      var dot = false;
      var mail = email.value;
      for(i=0;i<mail. length;i++) {
      if(mail.charAt( i)=="@")
      pap=true;
      if(mail.charAt( i)==".")
      dot=true;
      }

      if(dot==true && pap==true)
      return true;
      else {
      alert("Λάθος email!");
      return false;
      }
      }

      // Ελέγχει κατά πόσο συμπληρώθηκ ε σωστά το πεδίο 'telephone' (αν περιλαμβάνε ι αποκλειστικ ά αριθμητικού ς χαρακτήρες)
      function checkPhone() {
      var i=0;
      var okk=false;
      var phone = telephone.value ;
      for(i=0;i<phone .length;i++) {
      if(parseInt(pho ne.charAt(i))>= 0 && parseInt(phone. charAt(i))<=9 )
      ok=true;
      else {
      window.alert("Λ άθος τηλέφωνο!") ;
      ok = false;
      break;
      }
      }
      return ok;
      }

      </script>
      <meta name="Microsoft Border" content="t, default">
      </head>

      <BODY><!--msnavigation--><table border="0" cellpadding="0" cellspacing="0" width="100%"><t r><td>

      <p align="center"> <font size="6" color="#666666" ><strong>
      </strong></font><br>
      </p>
      </td></tr><table dir="ltr" border="0" cellpadding="0" cellspacing="0" width="100%"><t r><!--msnavigation--><td valign="top">

      <table width="40%" border="0">
      <tr>
      <td height="51" colspan="2"><di v align="center">
      <p><b>Φόρμα καταχώρησης στοιχείων</b></p>
      </div></td>
      </tr>
      <tr>
      <td width="37%" bgcolor="#9999F F">Όνομα:</td>
      <td width="65%"><in put type="text" name="name"></td>
      </tr>
      <tr>
      <td bgcolor="#9999F F">Επώνυμο:</td>
      <td><input type="text" name="sirname"> </td>
      </tr>
      <tr>
      <td bgcolor="#9999F F">E-mail:</td>
      <td><input type="text" name="email"></td>
      </tr>
      <tr>
      <td bgcolor="#9999F F">Τηλέφωνο: </td>
      <td><input type="text" name="telephone "></td>
      </tr>
      </table>
      <p>
      <input type="button" name="Button" value="Submit" onClick="Valida te()">
      </p>
      </table></BODY>
      </html>[/HTML]

      Oh, and thank you very much friend, I get to know javascript better..
      Last edited by acoder; Jan 15 '08, 10:52 AM. Reason: Added code tags

      Comment

      • acoder
        Recognized Expert MVP
        • Nov 2006
        • 16032

        #4
        Originally posted by lefterist
        So I have to give my form a name, and then give each button a name such as "form.butto n" so that the function can recongnize it globally?
        The text fields already have names, so let's say your form was called "form1", then you would access the email field with document.forms["form1"].elements["email"].
        Originally posted by lefterist
        It mustn't be this. After all, why is this smaller form that checks less things working?
        No, it doesn't work. Test it on, say Firefox, and you will get an error.

        Comment

        • lefterist
          New Member
          • Jan 2008
          • 3

          #5
          No problem, I solved it by defining a name for my form and then "document.form. element.value". ..

          Thank you very much!

          Comment

          • acoder
            Recognized Expert MVP
            • Nov 2006
            • 16032

            #6
            Originally posted by lefterist
            No problem, I solved it by defining a name for my form and then "document.form. element.value". ..
            Yes, that's a different syntax for this. Glad you got it working.
            Originally posted by lefterist
            Thank you very much!
            You're welcome. Post again if you have any more questions.

            Comment

            Working...