bijin
bijin

Reputation: 254

Adding events to dynamically created checkbox in jquery mobile

I created my check box dynamically in my page. i want to add click event for all checkboxes that dynamically created.

here is my code.

<div data-role="fieldcontain">
         <fieldset data-role="controlgroup" id="br">

        </fieldset> 
</div>

i dynamically created checkboxes and append to fieldset.

$.getJSON("http://localhost/WebSite/",
    function(data){ 
    var branchOp="";
      $.each(data.branch, function(i,item){   
         branchOp += '<input type="checkbox" name="branch" id="'+item.branchCode+'" value="'+item.branchCode+'" class="branch"><label for="'+item.branchCode+'">'+item.branchName+'</label>'; 
         $(item.branchCode).addClass("intro");     
      });
      $('#br').append(branchOp).trigger( "create" );  
      });

i use on(), live(), deligate() method to add event handlers on check boxes.

$('#br').delegate('click','input:checkbox', function(event) {
  alert('selected');
 }); 



$('#br').on('click','input:checkbox', function(event) {
alert('selected');
});

nothing is working for me...

Upvotes: 16

Views: 23933

Answers (3)

Udara Herath
Udara Herath

Reputation: 885

Try this, it's working for dynamically added checkboxes.

$(document).on("click", "INPUT[id^=checkboxId_]", function (event) {
   var targetId = event.target.id;

   if ($("#" + targetId + ":checked").length > 0) {
      alert('checked');
   }
   else {
      alert('unchecked');
   }
});

Upvotes: 1

BlueMystic
BlueMystic

Reputation: 2287

For a dinamically added Button inside a Collapsible List (or anything) i do this:

$(document).on("click", "#listaEntrada input", function(evt) {
        var txSeleccionado = $(this).text(); //<-El Texto Seleccionado
        console.log(evt);
});

Upvotes: 2

Omar
Omar

Reputation: 31732

With checkbox / radio buttons, use change event.

Demo

$(document).on('change', '[type=checkbox]', function() {
// code here
}); 

Also, you can use click but on the div wrapping the checkbox.

$(document).on('click', 'div.ui-checkbox', function() {
  // code here
});

Upvotes: 38

Related Questions