• The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
Menu
  • The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
  • Protecting HTML Page Elements with JavaScript and CSS

    December 4, 2002 Timothy Prickett Morgan

    Hey, David:

    I have an HTML form with several optional elements. Is there a way to protect and unprotect text elements based on a checkbox? When the user checks an alternate shipping address box, I want to open up a set of shipping address fields. I tried to do this with JavaScript, but the value of the checkbox doesn’t seem to change in Internet Explorer.

    — Loren

    You were on the right track checking the value for the checkbox; however checkboxes are a special case.

    The value attribute for checkboxes represents what the browser sends to the server when the checkbox is checked but doesn’t indicate whether it is checked. There is a special checked property that indicates the checked state.

    I have provided a snippet of HTML code to get you started. In this example, I have also grayed out the shipping description fields to make it more obvious to the user that the fields are protected:

    <html>
    <head>
      <title&gt; Demonstrate Optional Form Elements</title>
      <style>
        .protected {
        color: gray;
        font-style: italic;}
        .unprotected {
        color: black;
        font-style: normal;}
      </style>
      <script language="JavaScript" type="text/javascript">
        function shipToChange() {
          if (document.getElementById("shipTo").checked == true) {
            document.getElementById("textShipTo").className="unprotected";
            document.getElementById("shipToName").disabled=false;
            document.getElementById("shipToName").focus();
            document.getElementById("shipToLine1").disabled=false;
            document.getElementById("shipToLine2").disabled=false;
            document.getElementById("shipToCity").disabled=false;
            document.getElementById("shipToState").disabled=false;
            document.getElementById("shipToZip").disabled=false;
          }
          else {
            document.getElementById("textShipTo").className="protected";
            document.getElementById("shipToName").disabled=true;
            document.getElementById("shipToLine1").disabled=true;
            document.getElementById("shipToLine2").disabled=true;
            document.getElementById("shipToCity").disabled=true;
            document.getElementById("shipToState").disabled=true;
            document.getElementById("shipToZip").disabled=true;
          }
        }
      </script>
    </head>
    <body>
      <form name="myForm" method="POST">
        <table>
          <tfoot>
            <tr>
              <td colspan="2">
                <input type="submit" name="submit" value="Update">
                <input type="submit" name="cancel" value="Cancel">
              </td>
            </tr>
          </tfoot>
          <tbody>
            <tr valign="top">
              <td>Billing Address:</td>
              <td>
                <input type="text" name="billToName" size="30"><br />
                <input type="text" name="billToLine1" size="30"><br />
                <input type="text" name="billToLine2" size="30"><br />
                <input type="text" name="billToCity" size="20">
                <input type="text" name="billToState" size="2">
                <input type="text" name="billToZip" size="10">
              </td>
            </tr>
            <tr align="top" valign="top">
              <td>Specify Shipping Address:</td>
              <td><input type="checkbox" name="shipTo" onchange="shipToChange();"></td>
            </tr>
        <tr valign="top">
              <td id="textShipTo">Ship To:</td>
              <td align="top">
                <input type="text" name="shipToName" size="30"><br />
                <input type="text" name="shipToLine1" size="30"><br />
                <input type="text" name="shipToLine2" size="30"><br />
                <input type="text" name="shipToCity" size="20">
                <input type="text" name="shipToState" size="2">
                <input type="text" name="shipToZip" size="10">
              </td>
            </tr>
          </tbody>
        </table>
      </form>
      <script language="JavaScript">
        shipToChange();
      </script>
    </html>
    

    To try this out on your computer, cut and paste the HTML source code listed above into an empty document and save it with a .html extension. When you are done, open it with your browser and try checking and unchecking the ship-to address. After toggling the checkbox, try typing an address in the ship-to address fields.

    The elements on this page that are referred to in the javascript all have a property name or ID set by the name attribute for <input> elements, and by the ID attribute of the <td> element. This choice let me use the document.getElementById() function to manipulate those elements attributes. When a change is detected in the shipTo element, the shipToChange() script is run to set the style attributes of the ship-to address elements.

    — David

    Sponsored By
    ADVANCED SYSTEMS CONCEPTS

    Business Analytics
    – Practical –
    – Cost Effective –
    – Easy to Deploy –

    SEQUEL FYI

    User Quote:
    “I love SEQUEL FYI because it lets me look at the data any way I need to see it, instantly. This is the easiest tool to manage complex product relationships that I have ever seen.”

    SEQUEL FYI offers outstanding OLAP business intelligence functionality for a fraction of the cost of comparable solutions.

    Read More > View Streaming Video

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Tags: Tags: mgo_rc, Volume 2, Number 90 -- December 4, 2002

    Sponsored by
    FalconStor

    Simplify Secure Offsite Data Protection for IBM Power with FalconStor Habanero™

    IBM i teams are under growing pressure to ensure data is protected, recoverable, and compliant—without adding complexity or disrupting stable environments.

    FalconStor Habanero™ provides secure, fully managed offsite data protection purpose-built for IBM Power. It integrates directly with existing IBM i backup tools and processes, enabling reliable offsite copies without new infrastructure, workflow changes, or added operational overhead.

    By delivering and managing the service end-to-end, FalconStor helps organizations strengthen cyber resilience, improve disaster recovery readiness, and meet compliance requirements with confidence. Offsite copies are securely maintained and available when needed, supporting recovery, audits, and business continuity.

    FalconStor Habanero offers a straightforward way to modernize offsite data protection for IBM i: focused on simplicity, reliability, and resilience.

    Learn More

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Reader Feedback and Insights: RPG II LIKE is Like, Confusing, Man!

    Leave a Reply Cancel reply

MGO Volume: 2 Issue: 90

This Issue Sponsored By

    Table of Contents

    • Reader Feedback and Insights: RPG II
    • Protecting HTML Page Elements with JavaScript and CSS
    • LIKE is Like, Confusing, Man!

    Content archive

    • The Four Hundred
    • Four Hundred Stuff
    • Four Hundred Guru

    Recent Posts

    • GenAI Is The Death Of Deterministic Project Budgeting
    • PTC Adds Support For VS Code With Implementer 12.7
    • Guru: Single Threading A Program Execution
    • As I See It: Push Back
    • IBM i PTF Guide, Volume 28, Number 21
    • Progress And Frustration With IBM i Security, Fortra Finds
    • In The Trenches With: JAMS Software
    • Guru: Where’s The Table?
    • Lightedge To Start Selling IBM PowerVS to IBM i Customers
    • IBM i PTF Guide, Volume 28, Number 20

    Subscribe

    To get news from IT Jungle sent to your inbox every week, subscribe to our newsletter.

    Pages

    • About Us
    • Contact
    • Contributors
    • Four Hundred Monitor
    • IBM i PTF Guide
    • Media Kit
    • Subscribe

    Search

    Copyright © 2025 IT Jungle