Checking checkboxes are checked in an IF statement

26,945

Solution 1

if(showShield.value == "ely" && (document.getElementById("cb3").checked || document.getElementById("cb4").checked))//comparison
{
    document.getElementById("cb2").checked=true; //asignment
}
  1. Operator Precedence: && is done before || so you need brackets
  2. ==, not = for comparison (Preferably === which will not automatically convert types and do a strict comparison)
  3. ; is a statement terminator and shouldn't be used in the middle of one.

Solution 2

if(showShield.value === "ely" && (document.getElementById("cb3").checked == true || document.getElementById("cb4").checked == true))

No need to use semicolon and use == instead of =. Also brackets are needed for condition.

Share:
26,945
Admin
Author by

Admin

Updated on September 12, 2020

Comments

  • Admin
    Admin over 3 years

    I am currently having trouble making my IF statement work I want a user who selects shield "ely" and either selects textbox 3 or 4 would then automatically tick textbox 2.

    This is my JavaScript code:

    if(showShield.value == ("ely") && document.getElementById("cb3").checked = true; || document.getElementById("cb4").checked = true;)
        {
        document.getElementById("cb2").checked=true;
            }
    

    This is probably wrong since it does not work so how would I be able to check is a user selects textbox 3 or 4.

    Here is my HTML code:

    <html>
    <head>
    <script type="text/javascript" src="myJavascript.js"></script>
    </head>
    <body>
    
    <select id="likeShield" onchange="showTicks()">
    <option value="select1">Select</option>
    <option value="yesShield">Yes</option>
    <option value="noShield">No</option>
    </select>
    
    <select id="showShield" onchange="showTicks()">
    <option value="select1">Select</option>
    <option value="arc">Arcane</option>
    <option value="ely">Elysian</option>
    <option value="spec">Spectral</option>
    <option value="anylist">Choose any</option>
    </select>
    
    <table border = "1">
    <tr>
       <th> tickbox </th>
       <th> shield parts </th>
       <th> description </th>
       <th> cost </th>
    </tr>
    <tr>
    <td><input type="checkbox" id="cb1"></td>
       <td> arc sigil </td>
       <td> Large magic part </td>
       <td> 5m </td>
    </tr>
    <tr>
    <td><input type="checkbox" id="cb2"></td>
       <td> arc shield </td>
       <td> A extremely powerful magic shield </td>
       <td> 60m </td>
    </tr>
    <tr>
       <td><input type="checkbox" id="cb3"></td>
       <td> arc special item </td>
       <td> special element </td>
       <td> 10m </td>
    </tr>
    <tr>
       <td><input type="checkbox" id="cb4"></td>
       <td> elysian sigil  </td>
       <td> A sigil found by dragons </td>
       <td> 50m </td>
    </tr>   
    <tr>
       <td><input type="checkbox" id="cb5"></td>
       <td> elysian shield </td>
       <td> A extremely powerful ranging shield </td>
       <td> 40m </td>
    </tr>   
    <tr>
       <td><input type="checkbox" id="cb6"></td>
       <td> elysian special item </td>
       <td> A special attack attached to shield </td>
       <td> 25m </td>
    </tr>
    <tr>
       <td><input type="checkbox" id="cb7"></td>
       <td> spectral sigil  </td>
       <td> easily obtainable from goblins </td>
       <td> 4m </td>
    </tr>
    <tr>
       <td><input type="checkbox" id="cb8"></td>
       <td> spectral shield </td>
       <td> Impressive stats </td>
       <td> 15m </td>
    </tr>
    <tr>
       <td><input type="checkbox" id="cb9"></td>
       <td> spectral special item </td>
       <td> Does double damage </td>
       <td> 30m </td>
    </tr>
    </table>
    </body>
    </html>