Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

HTML definition List (DL) onclick event problem

Posted on 2009-04-08
4
Medium Priority
?
969 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 3

Accepted Solution

by:
GarthSnyder earned 600 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 43

Assisted Solution

by:David S.
David S. earned 600 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 300 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

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

Question has a verified solution.

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

Find out what you should include to make the best professional email signature for your organization.
When crafting your “Why Us” page, there are a plethora of pitfalls to avoid. Follow these five tips, and you’ll be well on your way to creating an effective page.
In this Micro Tutorial viewers will learn how to create navigation buttons that change on rollover, using CSS (Continuation of the CSS Image Sprite tutorial) Create a parent ID for all the list items       - Specify position: absolute and display: block…
In this tutorial viewers will learn how to embed an audio file in a webpage using HTML5. Ensure your DOCTYPE declaration is set to HTML5: : The declaration should display (CODE) HTML5 is supported by the most recent versions of all major browsers…

715 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