564 votes

jQuery affecter checkbox cochée

J'ai déjà essayé tous les moyens possibles, mais je ne l'ai toujours pas de travail. J'ai une fenêtre modale avec un checkbox je veux que lorsque l'modale s'ouvre, l' checkbox cochez ou décochez la case doit être basée sur une valeur de base de données. (J'ai déjà travailler avec les autres champs du formulaire.) J'ai commencé à essayer d'obtenir vérifié mais il ne fonctionne pas.

Mon code html div:

<div id="fModal" class="modal" >
    ...
    <div class="row-form">
        <div class="span12">
            <span class="top title">Estado</span>

          <input type="checkbox"  id="estado_cat" class="ibtn">
       </div>
    </div>             
</div>

et le jquery:

$("#estado_cat").prop( "checked", true );

J'ai aussi essayé avec attr, et les autres le voit ici dans les forums, mais aucune ne semble fonctionner. Quelqu'un peut-il m'indiquer la bonne façon?

EDIT: ok, je suis vraiment manqué quelque chose... je peux cocher/décocher l'aide de code si la case n'est pas dans la page, mais c'est que c'est dans la fenêtre modale, je ne peux pas. J'ai essayé des dizaines de façons différentes...

J'ai un lien qui est censé ouvrir le modal:

et jquery pour "écouter" le clic et d'exécuter certaines opérations comme le remplissage de certaines zones de texte avec les données de la base de données. Tout fonctionne comme je veux, mais le problème est que je ne peut pas définir de case cochée/décochée à l'aide de code. de l'aide s'il vous plaît!

$(function() {
 $(".editButton").click(function(){
       var id = $(this).data('id'); 
       $.ajax({
          type: "POST",
          url: "process.php",
          dataType:"json",
          data: { id: id, op: "edit" },
        }).done(function( data ) {
//the next two lines work fine, i.e., it grabs the value from database and fills the textboxes
          $("#nome_categoria").val( data['nome_categoria'] );
          $("#descricao_categoria").val( data['descricao_categoria'] );
//then I tried to set the checkbox checked (because its unchecked by default) and it does not work
           $("#estado_cat").prop("checked", true);
        $('#fModal').modal('show');
});
    evt.preventDefault();
    return false;
    });     
});

933voto

singe Batteur Points 921

vous devez utiliser la fonction « prop » :

86voto

eriknoyes Points 91

Compte tenu de toutes les propositions de réponses et de les appliquer à ma situation, essayant de cocher ou décocher une case à cocher basé sur un extrait de la valeur vraie (doit cocher la case) ou faux (faut pas cocher la case) - j'ai essayé tous les ci-dessus et a constaté que l'aide .prop("checked", true) et .prop("checked", false) était la bonne solution.

Je ne peux pas ajouter des commentaires ou des réponses encore, mais j'ai senti que c'était assez important à ajouter à la conversation.

Voici la main de code pour une fullcalendar modification qui dit que si la valeur récupérée "allDay" est vrai, alors cochez la case avec l'ID "even_allday_yn":

if (allDay)
{
    $( "#even_allday_yn").prop('checked', true);
}
else
{
    $( "#even_allday_yn").prop('checked', false);
}

21voto

KeyOfJ Points 165

Puisque vous êtes dans une fenêtre modale (si dynamique ou dans la page), vous pouvez utiliser le code suivant pour atteindre votre objectif: (j'ai rencontré le même problème sur mon site et c'est ainsi que j'ai corrigé)

HTML:

<div class="content-container" style="text-align: right;">
    <input type="checkbox" id="QueryGroupCopyQueries">
    <label for="QueryGroupCopyQueries">Create Copies</label>                                                   
</div>

CODE:

$.each(queriesToAddToGroup, function (index, query) {
    if (query.groupAddType === queriesGroupAddType.COPY) {

        // USE FIND against your dynamic window and PROP to set the value
        // if you are using JQUERY 1.6 or higher.
        $(kendoWindow).find("input#QueryGroupCopyQueries").prop("checked", true);

        return;
    }

Dans l'au-delà "kendoWindow" est ma fenêtre (le mien est dynamique, mais j'ai aussi le faire lors de l'ajout d'un élément directement dans la page). Je suis une boucle dans un tableau de données ("queriesToAddToGroup") pour voir si toutes les lignes ont un attribut de la COPIE. Si je tiens donc à son tour sur la case à cocher dans la fenêtre qui définit l'attribut lorsqu'un utilisateur enregistre à partir de cette fenêtre.

11voto

user1849310 Points 26
<pre><code></code><p>fonctionnera. Assurez-vous que true et false ne sont pas à l’intérieur de guillemets.</p></pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X