I am using jQuery to add select in each row of a table. The selects are assigned a class name.
Now, I need to get the value of the select on change using this dynamically assigned class name.
$select = $('<select class="medName"></select>');
for(var i = 0;i < tmp.length-1; i++){
$option = $('<option>'+tmp[i]+'</option>');
$select.append($option);
}
Here tmp contains data fetched from backend.
Finally,
var $row = $('<tr></tr>');
var $data1 = $('<td></td>');
var $data2 = $('<td></td>');
var $data3 = $('<td></td>');
var $data4 = $('<td></td>');
//alert($select.html());
$data1.append($select);
$data2.append($type);
$data3.append($text);
$data4.append($label);
$row.append($data1);
$row.append($data2);
$row.append($data3);
$row.append($data4);
$row.insertAfter('#CashMemoBody');
This works perfectly fine.
Now when I do,
$('.medName').on('change', function (e) {
var val = $(this).find('option :selected').html();
alert(val);
});
I do not even get an alert.
Inspect Element shows, that the classes are properly assigned.
Whats going wrong ?
Here the problem is NOT only dynamic binding, but also getting the value of the selected option. None of the provided solutions seem to work here. Hence the question.