Javascript help

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Andy

    Javascript help

    I'm not sure why my checkbox code is not working as per intended. It
    always keeps saying "Please select the department" even though I check
    the department... appreciate any help.

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML><HEAD><TI TLE>Welcome to the Scripting Store</TITLE>
    <META http-equiv=Content-Type content="text/html;
    charset=windows-1252">
    <SCRIPT>

    // Banner Rotator logic

    //Load banner elements into array
    var banners = new
    Array("banner1. jpg","banner2.j pg","banner3.jp g","banner4.jpg ")

    //Set banner counter to 0
    var bnrCntr = 0

    //Function that actually rotates the banner
    function bancycle() {
    bnrCntr = bnrCntr + 1
    if (bnrCntr == 4) {
    bnrCntr = 0
    }
    document.Banner .src = banners[bnrCntr]
    setTimeout("ban cycle()",3000)
    }

    //End Banner Rotator Logic

    </SCRIPT>

    <META content="MSHTML 6.00.2800.1106" name=GENERATOR> </HEAD>
    <BODY onload=bancycle ()>
    <TABLE borderColor=blu e width=700 border=1>
    <TBODY>
    <TR>
    <TD width="30%"><IM G name=Banner></TD>
    <TD align=middle>
    <H1>Welcome to the Scripting
    Store</H1></TD></TR></TBODY></TABLE><BR>
    <SCRIPT language=javasc ript>

    document.writel n("Today is: ");
    var nDate = new Date();
    document.writel n(nDate);

    var strName = new String();
    strName = window.prompt(" What is your Name?", "FirstNameOnly" );
    //document.write( "Welcome " + strName + "<br>");

    document.write( "<h2>Hello " + strName + "</h2>");
    var varStatus;
    status = "Hello " + strName + " - Welcome to the Scripting Store";
    //Year(Now());
    </SCRIPT>

    <P>Please select one of our departments listed below</P><BR><INPUT
    onclick=locateD epartment() type=button value="Select Department"
    name=btnSelect>
    <BR>
    <SCRIPT>

    var varDept = new Array(3);
    varDept[0] = "Books";
    varDept[1] = "Computers" ;
    varDept[2] = "Caffeine free products";
    var numMax = varDept.length;
    var strDept;

    for (var i=0; i <numMax; ++i)
    {
    document.write( "<p><input type='checkbox' value=" + [i] + "name=" +
    varDept[i] + ">" + varDept[i] + "</p>");
    }
    </SCRIPT>

    <SCRIPT>

    function locateDepartmen t()
    {
    var varselect = true;
    var varMax = 3;
    for (var x=0; x < varMax; ++x)
    {
    if (varDept[x].checked == true)
    {
    if ([x] == 0)
    {
    location.href=' book.htm';
    }
    else if ([x] == 1)
    {
    location.href=' Caffiene.htm';
    }
    else if ([x] == 2)
    {
    location.href=' Computers.htm';
    }
    }
    else
    {
    varselect = false;
    }
    }

    if (varselect == false)
    {
    window.alert("P lease Select a Department");
    return false;
    }

    }

    </SCRIPT>
    </BODY></HTML>
  • Henry Delfanzo

    #2
    Re: Javascript help

    akasotia@guidem ail.com (Andy) wrote in message news:<acd1015f. 0410061121.1b0d 42fb@posting.go ogle.com>...[color=blue]
    > I'm not sure why my checkbox code is not working as per intended. It
    > always keeps saying "Please select the department" even though I check
    > the department... appreciate any help.[/color]

    I think it is a problem with your loop in the locateDepartmen t
    function.

    I commented out the location.href links and replaced them with alert
    boxes. This did not work.

    I commented out the end else loop. This stopped the alert box but
    nothing happens with when Select Department button is press when a
    checkbox is checked. It seems the loop automatically brings you to
    this else statement.

    I moved all functions within the <HEAD> tags, did not help.

    Not sure either. Attempted for one hour without luck.

    Good luck,

    A Javascript newbie
    [color=blue]
    >
    > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    > <HTML><HEAD><TI TLE>Welcome to the Scripting Store</TITLE>
    > <META http-equiv=Content-Type content="text/html;
    > charset=windows-1252">
    > <SCRIPT>
    >
    > // Banner Rotator logic
    >
    > //Load banner elements into array
    > var banners = new
    > Array("banner1. jpg","banner2.j pg","banner3.jp g","banner4.jpg ")
    >
    > //Set banner counter to 0
    > var bnrCntr = 0
    >
    > //Function that actually rotates the banner
    > function bancycle() {
    > bnrCntr = bnrCntr + 1
    > if (bnrCntr == 4) {
    > bnrCntr = 0
    > }
    > document.Banner .src = banners[bnrCntr]
    > setTimeout("ban cycle()",3000)
    > }
    >
    > //End Banner Rotator Logic
    >
    > </SCRIPT>
    >
    > <META content="MSHTML 6.00.2800.1106" name=GENERATOR> </HEAD>
    > <BODY onload=bancycle ()>
    > <TABLE borderColor=blu e width=700 border=1>
    > <TBODY>
    > <TR>
    > <TD width="30%"><IM G name=Banner></TD>
    > <TD align=middle>
    > <H1>Welcome to the Scripting
    > Store</H1></TD></TR></TBODY></TABLE><BR>
    > <SCRIPT language=javasc ript>
    >
    > document.writel n("Today is: ");
    > var nDate = new Date();
    > document.writel n(nDate);
    >
    > var strName = new String();
    > strName = window.prompt(" What is your Name?", "FirstNameOnly" );
    > //document.write( "Welcome " + strName + "<br>");
    >
    > document.write( "<h2>Hello " + strName + "</h2>");
    > var varStatus;
    > status = "Hello " + strName + " - Welcome to the Scripting Store";
    > //Year(Now());
    > </SCRIPT>
    >
    > <P>Please select one of our departments listed below</P><BR><INPUT
    > onclick=locateD epartment() type=button value="Select Department"
    > name=btnSelect>
    > <BR>
    > <SCRIPT>
    >
    > var varDept = new Array(3);
    > varDept[0] = "Books";
    > varDept[1] = "Computers" ;
    > varDept[2] = "Caffeine free products";
    > var numMax = varDept.length;
    > var strDept;
    >
    > for (var i=0; i <numMax; ++i)
    > {
    > document.write( "<p><input type='checkbox' value=" + [i] + "name=" +
    > varDept[i] + ">" + varDept[i] + "</p>");
    > }
    > </SCRIPT>
    >
    > <SCRIPT>
    >
    > function locateDepartmen t()
    > {
    > var varselect = true;
    > var varMax = 3;
    > for (var x=0; x < varMax; ++x)
    > {
    > if (varDept[x].checked == true)
    > {
    > if ([x] == 0)
    > {
    > location.href=' book.htm';
    > }
    > else if ([x] == 1)
    > {
    > location.href=' Caffiene.htm';
    > }
    > else if ([x] == 2)
    > {
    > location.href=' Computers.htm';
    > }
    > }
    > else
    > {
    > varselect = false;
    > }
    > }
    >
    > if (varselect == false)
    > {
    > window.alert("P lease Select a Department");
    > return false;
    > }
    >
    > }
    >
    > </SCRIPT>
    > </BODY></HTML>[/color]

    Comment

    • Lee

      #3
      Re: Javascript help

      Andy said:[color=blue]
      >
      >I'm not sure why my checkbox code is not working as per intended. It
      >always keeps saying "Please select the department" even though I check
      >the department... appreciate any help.[/color]
      [color=blue]
      ><SCRIPT>[/color]

      The <script> tag should have a type attribute:

      <script type="text/javascript">
      [color=blue]
      >var varDept = new Array(3);
      >varDept[0] = "Books";
      >varDept[1] = "Computers" ;
      >varDept[2] = "Caffeine free products";
      >var numMax = varDept.length;
      >var strDept;
      >
      >for (var i=0; i <numMax; ++i)
      >{
      >document.write ("<p><input type='checkbox' value=" + [i] + "name=" +
      >varDept[i] + ">" + varDept[i] + "</p>");
      >}
      ></SCRIPT>
      >
      ><SCRIPT>
      >
      >function locateDepartmen t()
      >{
      >var varselect = true;
      >var varMax = 3;
      >for (var x=0; x < varMax; ++x)
      > {
      > if (varDept[x].checked == true)[/color]

      You've defined varDept as an array of strings.
      None of the elements of this array have an attribute
      named "checked".

      [color=blue]
      > {
      > if ([x] == 0)[/color]

      What are those square brackets supposed to mean?
      That's a syntax error.

      Comment

      • Richard Cornford

        #4
        Re: Javascript help

        Lee wrote:
        <snip>[color=blue][color=green]
        >> if ([x] == 0)[/color]
        >
        > What are those square brackets supposed to mean?
        > That's a syntax error.[/color]

        It is not a syntax error, it is an Array literal: Construct an new Array
        with its first element set to the current value of x, compare the result
        (the Array object) with the numeric value of zero and when it doesn't
        equal zero do not execute the statement following - if -.

        Completely valid javascript, just massively unlikely to be anything even
        close to what is intended.

        Richard.


        Comment

        • Michael Winter

          #5
          Re: Javascript help

          On 6 Oct 2004 12:21:00 -0700, Andy <akasotia@guide mail.com> wrote:

          [snip]
          [color=blue]
          > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">[/color]

          Some browsers don't treat that DOCTYPE properly. Include the URL. See
          <URL:http://www.w3.org/TR/html4/struct/global.html#h-7.2>.
          [color=blue]
          > <HTML><HEAD><TI TLE>Welcome to the Scripting Store</TITLE>[/color]

          Hmm. That title worries me.
          [color=blue]
          > <META http-equiv=Content-Type
          > content="text/html; charset=windows-1252">[/color]

          Don't use Microsoft character sets. Use standard ones. ISO-8859-1 (Latin
          1) will be fine for English websites.

          <meta http-equiv="Content-Type"
          content="text/html; charset=iso-8859-1">
          [color=blue]
          > <SCRIPT>[/color]

          As Lee said: the type attribute is required for SCRIPT elements.

          [snip]
          [color=blue]
          > <META content="MSHTML 6.00.2800.1106" name=GENERATOR> </HEAD>[/color]

          Using any Web authoring software produced by Microsoft (Notepad being the
          only exception) is generally a mistake.
          [color=blue]
          > <BODY onload=bancycle ()>[/color]

          Validate your markup. See <URL:http://validator.w3.or g/>.

          [snip]

          Mike

          --
          Michael Winter
          Replace ".invalid" with ".uk" to reply by e-mail.

          Comment

          • Robert

            #6
            Re: Javascript help

            akasotia@guidem ail.com (Andy) wrote in message news:<acd1015f. 0410061121.1b0d 42fb@posting.go ogle.com>...[color=blue]
            > I'm not sure why my checkbox code is not working as per intended. It
            > always keeps saying "Please select the department" even though I check
            > the department... appreciate any help.
            >[/color]


            I made some comments in the text.

            Do not know why [X] by itself wasn't giving an error. I changed them
            to just x.

            You may want to try out firefox. It has a dom inspector which will
            let you see the generated html.

            The following one-liner when pasted into the command line will also
            display the generated html. (It looks for line ends which are OS
            dependent.):

            javascript:'<ht ml><head><title >SourceFileList ing<\/title><\/head><body><cod e><ol><li>'+(do cument.document Element||docume nt.body).innerH TML.replace(/&/g,%22&amp;%22). replace(/</g,%22&lt;%22).r eplace(/%20%20/g,%22&nbsp;%20% 22).replace(/\r\n/g,%22<li>%22).r eplace(/\n/g,%22<li>%22).r eplace(/\r/g,%22<li>%22)+' <\/ol><\/code><\/body><\/html>';


            Robert

            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
            "http://www.w3.org/TR/html4/loose.dtd">
            <HTML><HEAD><TI TLE>Welcome to the Scripting Store</TITLE>
            <META http-equiv=Content-Type content="text/html;
            charset=windows-1252">
            <script type="text/javascript">

            // Notice the change in the doctype and script tag.

            /* Good that you post your javascript with short lines.
            Seems like you have experience with programming.

            */

            // Banner Rotator logic

            //Load banner elements into array
            // Here is another syntax for arrays...

            var banners = [ "banner1.jp g",
            "banner2.jp g",
            "banner3.jp g",
            "banner4.jp g" ];

            //Set banner counter to 0
            var bnrCntr = 0

            //Function that actually rotates the banner
            function bancycle() {
            bnrCntr = bnrCntr + 1
            if (bnrCntr == 4) {
            bnrCntr = 0
            }
            document.Banner .src = banners[bnrCntr]
            setTimeout("ban cycle()",3000)
            }

            //End Banner Rotator Logic

            </SCRIPT>

            <!-- What is this. Be careful about using html generators and
            Javascript. Be doubly careful with MS products. -->

            <META content="MSHTML 6.00.2800.1106" name=GENERATOR> </HEAD>

            <!-- need quote marks around event handler code
            The ; is recommended. -->

            <BODY onload="bancycl e();">
            <TABLE borderColor=blu e width=700 border=1>
            <TBODY>
            <TR>
            <TD width="30%"><IM G name=Banner></TD>
            <TD align=middle>
            <H1>Welcome to the Scripting
            Store</H1></TD></TR></TBODY></TABLE><BR>

            <!-- try to minimize javascript inline. Call a function. -->

            <SCRIPT language=javasc ript>

            document.writel n("Today is: ");
            var nDate = new Date();
            document.writel n(nDate);

            var strName = new String();
            strName = window.prompt(" What is your Name?", "FirstNameOnly" );
            //document.write( "Welcome " + strName + "<br>");

            document.write( "<h2>Hello " + strName + "</h2>");
            var varStatus;
            status = "Hello " + strName + " - Welcome to the Scripting Store";
            //Year(Now());
            </SCRIPT>

            <!-- Add form tag. -->

            <form name="myform">

            <!-- I'd move the button below the check boxes. Watch you
            eye movement for the why. -->

            <P>Please select one of our departments listed below</P><BR><INPUT
            onclick=locateD epartment() type=button value="Select Department"
            name=btnSelect>
            <BR>
            <SCRIPT>

            var varDept = new Array(3);
            varDept[0] = "Books";
            varDept[1] = "Computers" ;
            varDept[2] = "Caffeine free products";

            var numMax = varDept.length;
            var strDept;

            <!-- I'd go with varDept.length in the code. -->

            for (var i=0; i <numMax; ++i)
            {

            /* Missing signal quotes for value and name.
            Sometimes you need the quote marks and sometimes you
            can luck out. So, allows do. */

            document.write( "<p><input type='checkbox' value='" + i + "' name='" +
            varDept[i] + "'>" + varDept[i] + "</p>");
            }
            </SCRIPT>
            </form>
            <SCRIPT>

            function locateDepartmen t()
            {

            /* I'm not sure that the loop saves you any code. */

            var varselect = true;
            var varMax = 3;
            for (var x=0; x < varMax; ++x)
            {

            /* Try puting in alerts for debug. */

            alert("x= " + x);

            /* Need to reference the form */

            if (document.forms["myform"].elements[varDept[x]].checked == true)
            {
            if (x == 0)
            {
            location.href=' book.htm';
            }
            else if (x == 1)
            {
            location.href=' Caffiene.htm';
            }
            else if (x == 2)
            {
            location.href=' Computers.htm';
            }
            }
            else
            {
            varselect = false;
            }
            }

            if (varselect == false)
            {
            window.alert("P lease Select a Department");
            return false;
            }

            }

            </SCRIPT>
            </BODY></HTML>

            Comment

            • Henry Delfanzo

              #7
              Re: Javascript help

              I got the program to work by changing the input type from checkbox to
              radio button. With the checkbox, if two boxes were checked, most
              likely there would have been an error because the function could not
              goto two links at the same time. (maybe pop-up window is the intention
              but not sure).

              I also took out the javascript form creation loop and moved the
              locateDepartmen t() function to the <HEAD> tag.

              HTH!

              <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
              <HTML><HEAD><TI TLE>Welcome to the Scripting Store</TITLE>
              <META http-equiv=Content-Type content="text/html;
              charset=windows-1252">

              <SCRIPT>

              function locateDepartmen t()
              {

              if (document.forms[0].a[0].checked) {


              location.href=' book.htm';
              return true;

              }


              else if (document.forms[0].a[1].checked) {


              location.href=' Computers.htm';
              return true;

              }

              else {


              location.href=' Caffiene.htm';
              return true;

              }

              }

              </SCRIPT>


              <SCRIPT>

              // Banner Rotator logic

              //Load banner elements into array
              var banners = new
              Array("banner1. jpg","banner2.j pg","banner3.jp g","banner4.jpg ")

              //Set banner counter to 0
              var bnrCntr = 0

              //Function that actually rotates the banner
              function bancycle() {
              bnrCntr = bnrCntr + 1
              if (bnrCntr == 4) {
              bnrCntr = 0
              }
              document.Banner .src = banners[bnrCntr]
              setTimeout("ban cycle()",3000)
              }

              //End Banner Rotator Logic

              </SCRIPT>

              <META content="MSHTML 6.00.2800.1106" name=GENERATOR> </HEAD>
              <BODY onload=bancycle ()>

              <TABLE borderColor=blu e width=700 border=1>
              <TBODY>
              <TR>
              <TD width="30%"><IM G name=Banner></TD>
              <TD align=middle>
              <H1>Welcome to the Scripting Store</H1>
              </TD>
              </TR>
              </TBODY>
              </TABLE>

              <BR>
              <SCRIPT language=javasc ript>

              document.writel n("Today is: ");
              var nDate = new Date();
              document.writel n(nDate);

              var strName = new String();
              strName = window.prompt(" What is your Name?", "FirstNameOnly" );
              //document.write( "Welcome " + strName + "<br>");

              document.write( "<h2>Hello " + strName + "</h2>");
              var varStatus;
              status = "Hello " + strName + " - Welcome to the Scripting Store";
              //Year(Now());

              </SCRIPT>

              <P>Please select one of our departments listed below</P>

              <BR>

              <form>

              <INPUT onclick=locateD epartment() type=button value="Select
              Department"
              name=btnSelect>

              <p><input type='radio' name='a' value='a1' checked>Books
              <p><input type='radio' name='a' value='b1'>Comp uters
              <p><input type='radio' name='a' value='c1'>CAff eine free Products

              </form>

              </BODY></HTML>

              Comment

              Working...