I am working on a module where i have generated few DOM elements dynamically. But when i am trying to call certain function on some events then its not getting called. Here is the code sample. Here you can see i am calling getData method on "change" event but its not being called
getData: function() {
var data = this._super();
data.additional_data.bank_type = $('input[name="payment\\[bank_type\\]"]:checked').val();
data.additional_data.emi = $('input[name="payment\\[emi\\]"]:checked').val();
data.additional_data.email = this.getEmail();
console.log($('input[name="payment\\[emi\\]"]:checked').val());
return data;
},
getEmi: function (emiCount) {
var total = priceUtils.formatPrice(quote.totals().grand_total, quote.getPriceFormat());
var rowTotal = quote.totals().grand_total;
var item = '';
var html = '';
var i;
for (i=1; i<=emiCount; i++ ) {
if (i==1) {
item = "<li>" +
"<input type='radio' name='payment[emi_type]' data-bind='event: { change: getData}' id='emi" + i + "' value='" + i + "'>" +
"<label class='label' for='emi" + i + "'>Tek Ödeme, Toplam: "+total+"</label>" +
"</li>";
} else {
rowTotal = parseInt(rowTotal)/i;
item = "<li>" +
"<input type='radio' name='payment[emi_type]' data-bind='event: { change: getData}' id='emi" + i + "' value='" + i + "'>" +
"<label class='label' for='emi" + i + "'>"+i+" Taksit, Aylık Taksit: "+priceUtils.formatPrice(rowTotal, quote.getPriceFormat())+" Toplam: "+total+"</label>" +
"</li>";
}
html = html+item;
}
console.log(html);
$('.emi-list').html(html);
},
Best Answer
I used js code like.
Binding template .html file.
Please check above radio element with change event with Test Label.