Solved

HTML definition List (DL) onclick event problem

Posted on 2009-04-08
4
954 Views
Last Modified: 2012-06-22
I am learning HTML and Javascript. I encountered an issue when I ran the attached code. If I select the bottom drop down list item, the debug message for the definition list (dl) event handler (markLoadPage) is popped up instead of the one (setColor) for the drop down list. This issue won't show if I move the drop down list to the top of the definition list. Is there anything wrong for the dl onclick event syntax? Thanks!
<html>

  <head>

    <title>Test</title>

    <script language="javascript"> <!--
 

      function markLoadPage( page_url )

      {

	    alert( 'markLoadPage() called!' );

      }

      

      function setColor()

     {

	  alert( 'setColor() called!' );

	  	  

	    var idx = document.getElementById( "color_list" ).selectedIndex;

	    if( idx > 0 )

	    {

	      document.bgColor = document.getElementById( "color_list" ).options[ idx ].value;

          }

      } 

//--></script>

  </head>

  <body>

   <form action="">

     <h2>Categories</h2>

     <dl><a href="red_rose.html" target="P3" onclick="markLoadPage( 'red_rose.html' )">Red rose</dl>

     <dl><a href="pink_rose.html" target="P3" onclick="markLoadPage( 'pink_rose.html' )">Pink rose</dl>

     <dl><a href="yellow_rose.html" target="P3" onclick="markLoadPage( 'yellow_rose.html' )">Yellow rose</dl>

     <dl><a href="white_rose.html" target="P3" onclick="markLoadPage( 'white_rose.html' )">White rose</dl>

     <dl><a href="orange_rose.html" target="P3" onclick="markLoadPage( 'orange_rose.html' )">Orange rose</dl>

     <dl><a href="lavender_rose.html" target="P3" onclick="markLoadPage( 'lavender_rose.html' )">Lavender rose</dl>

     <p/><p/>

     <select name="color_list" id="color_list" onchange="setColor()">

       <option value="prompt">Choose a colour</option>

       <option value="red">red</option>

       <option value="pink">pink</option>

       <option value="yellow">yellow</option>

       <option value="white">white</option>

       <option value="orange">orange</option>

       <option value="lavender">lavender</option>

     </select>

     <p/>

     <input type="button" class="bt_style" value="Save Selection" name="bt_save">  

   </form>

  </body>

</html>

Open in new window

0
Comment
Question by:gs_kanata
  • 2
4 Comments
 
LVL 3

Accepted Solution

by:
GarthSnyder earned 200 total points
ID: 24104444
Your <a> tags are unclosed, so the browser sees them as extending all the way to the end of the document. So the entire <select> popup is included in the link for lavender_rose and therefore has an onclick event.

Just close the <a>'s with </a> and you should be fine.
0
 
LVL 42

Assisted Solution

by:David S.
David S. earned 200 total points
ID: 24104572
The HTML validator can be quite helpful: http://validator.w3.org/
0
 
LVL 75

Assisted Solution

by:Michel Plungjan
Michel Plungjan earned 100 total points
ID: 24105184
I also strongly advice to change


      function markLoadPage( page_url )
      {
            alert( 'markLoadPage() called!' );
            return false; // cancel the link
      }

and

 onclick="return markLoadPage( '...' )"
0
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 24108133
Why "B" ???
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Things That Drive Us Nuts Have you noticed the use of the reCaptcha feature at EE and other web sites?  It wants you to read and retype something that looks like this.Insanity!  It's not EE's fault - that's just the way reCaptcha works.  But it is …
Use these top 10 tips to master the art of email signature design. Create an email signature design that will easily wow recipients, promote your brand and highlight your professionalism.
In this tutorial viewers will learn how to position items using CSS's three positioning types Create a new HTML document with an internal stylesheet.: Create another div in CSS and name it Absolute : Type "position:absolute;" and "top:10px; left:50p…
HTML5 has deprecated a few of the older ways of showing media as well as offering up a new way to create games and animations. Audio, video, and canvas are just a few of the adjustments made between XHTML and HTML5. As we learned in our last micr…

932 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now