web-dev-qa-db-fra.com

Comment cocher "case à cocher" dynamiquement - jQuery Mobile

Avec HTML, une case à cocher est créée comme ceci:

<form>
   <input type="checkbox" id="category1">Category1<br>
</form>

Avec javascript, nous pouvons cocher la case comme ceci:

$("#category1")[0].checked = true

Maintenant, j'essaie de créer la même page avec jquery-mobile. La case à cocher ressemble à ceci:

<form>
    <label>
        <input name="checkbox-0 " type="checkbox">Check me
    </label>
</form>

Pourquoi n'y a-t-il pas de id ici? Est-ce que le nom est id? Devrais-je supprimer le nom de l'attribut et en créer un avec le nom id?

Comment puis-je cocher cette case ici avec Javascript/jQuery? 

J'ai essayé le code ci-dessus, mais cela ne semble pas fonctionner pour cette case à cocher.

17
Jonh Smid

Vous devez l'actualiser après avoir changé son '.prop, à l'aide de .checkboxradio('refresh'). C’est la bonne façon de vérifier les cases à cocher/radio dans jQuery Mobile.

Démo

$('.selector').prop('checked', true).checkboxradio('refresh');

Référence: API jQuery Mobile

52
Omar

Tu peux faire:

$('input[name="checkbox-0"]').prop("checked", true).checkboxradio('refresh'); //sets the checkbox
var isChecked =  $('input[name="checkbox-0"]').prop("checked"); //gets the status
3
tymeJV

Directement à partir de docs jQ Mobile :

$("input[type='checkbox']").attr("checked",true);
2
blend