2017-10-03 2 views
0

J'ai une sorte de case à cocher dans mon formulaire qui est par défaut est cochée. Ce que je veux faire est de décocher la case à cocher et de cliquer sur le bouton soumettre, d'appeler la fonction javascript pour changer la valeur de la case à cocher et son état aussi (coché/décoché).garder l'état de case cochée/décochée après envoi du formulaire jsp

C'est ce que j'ai essayé, mais cela ne fonctionne pas comme prévu?

<form action="ResultServlet" method="post" id="searchForm"> 
    <table cellspacing="0" style="width: 50%;float: right"> 
     <tr> 
      <th style="text-align: left;"><label>Work List Cases:</label></th>      
      <td> 
       <div class="checkbox checkbox-primary"> 
       <input name="workListCases" id="checkbox2" checked type="checkbox" value=""> 
       <label for="checkbox2"></label> 
       </div> 
      </td> 
     </tr> 
    </table> 
     <button type="submit" onclick="changeCheckBox()" style="font-weight: bold;background-color: #F0F1F2" class="btn btn-default">Search</button>       
    </form> 

js Fonction:

function changeCheckBox(){ 
      if($("#checkbox2").is(':checked')){ 
       $("#checkbox2").val("true"); 
       $('#checkbox2').attr('checked', false); 
      } 
      else { 
       $('#checkbox2').attr('checked', true); 
       $("#checkbox2").val("true"); 
      } 
     } 

Excuse ma question si cela semble fastidieux, je suis encore nouveau pour jquery.

Répondre

0

Par défaut, votre case à cocher value ="" ...

Pourquoi la valeur "true" ou "false"?

Essayez:

function changeCheckBox(){ 
      if($("#checkbox2").is(':checked')){ 
       $('#checkbox2').attr('checked', false); //jquery <1.6 
       $('#checkbox2').removeAttr('checked'); 
       $('#checkbox2').prop('checked', false); //jquery >1.6 
       $('#checkbox2').removeProp('checked'); 
      } 
      else { 
       $('#checkbox2').attr('checked', true); 
       $('#checkbox2').prop('checked', true); 
      } 
}