Search code examples
javascriptphpsessionhtml-formhandler

keep disabled input field disabled when checked


ok guys i got this working just fine but am having an issue say supposing user submits the form thought the checkbox field stays checked but the disabled input field datepicker is not disabled any more.

here is my code

    if(isset($_POST['present'])){
    $checked = "checked";
    $rjobto1 ="Present";
    }else{
    $rjobto1 ="".$_POST['rjobto1']."";
    }

<script type="text/javascript" >  
     function disableMyText(){  
              if(document.getElementById("present").checked == true){  
                  document.getElementById("datepicker2").disabled = true;  
              }else{
                document.getElementById("datepicker2").disabled = false;
              }  
    }  
    </script> 

    <small><b><input type="checkbox" id="present" name="present" onClick="disableMyText()" <?php echo $checked;?>/> Presently Working</b></small>
    <input type="text" name="rjobto1" class="form-control input-lg datepicker" id="datepicker2" placeholder="To" value="<?php if(isset($error)){ echo $rjobto1; } ?>" tabindex="2" /> 

Solution

  • Call the JavaScript function on page load:

    function disableMyText(){  
                      if(document.getElementById("present").checked == true){  
                          document.getElementById("datepicker2").disabled = true;  
                      }else{
                        document.getElementById("datepicker2").disabled = false;
                      }  
            }
            disableMyText();
    <small><b><input type="checkbox" id="present" name="present" onClick="disableMyText()" <?php echo $checked;?>/> Presently Working</b></small>
    <input type="text" name="rjobto1" class="form-control input-lg datepicker" id="datepicker2" placeholder="To" value="<?php if(isset($error)){ echo $rjobto1; } ?>" tabindex="2" />

    Edit: Please note to put the JavaScript at the bottom of the form, otherwise it will fail. So first the two input fields, then the JavaScript.