I am creating some buttons dynamically and assigning them IDs.
When ever someone clicks that button I want to collect the ID and from there perform some task.
Here's my work in progress
$(document).ready(function() {
$('input:button').addClass("btnClass");
fillData();
$('#btnGet').click(function() {
fillData();
});
function fillData() {
$.ajax({
type: "Post",
url: "../Linq/myService.asmx/getStudent",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
//var nMsg = (typeof msg.d) == 'string' ? eval('(' + msg.d + ')') : msg.d;
var t = "<table width='80%' id='resTab'> <tr>" +
"<td colspan='5' style='text-align:center'><font size='3'><strong>Your Search Result......</strong></font></td></tr> <tr><td style='text-align:left' colspan='5'><hr></td></tr> "
+ " <tr><td style='text-align:center'>Student ID</td><td style='text-align:center'>Student Name</td><td style='text-align:center'>Student Course</td><td style='text-align:center'>Student USN</td></tr>"
+ " <tr><td style='text-align:left' colspan='5'><hr><br></td></tr> ";
$.each(msg.d, function(index, item) {
t = t + " <tr><td style='text-align:center'>" + item.studId + "</td><td style='text-align:center'>" + item.studName + "</td><td style='text-align:center'>" + item.studCourse + "</td><td style='text-align:center'>" + item.studUsn + "</td><td><input type='button' ID='btn" + item.studId + "' value='Delete' onClick='onButtonClick()'/></td></tr>";
t = t + " <tr><td style='text-align:left' colspan='5'><hr></td></tr> ";
});
t = t + " </table> ";
$("#stdData").html(t);
},
error: function(msg) { }
});
}
function onButtonClick() {
var btnId = $(this).val();
alert(btnId);
}
Just add a class name of new-button
to the buttons you're creating and add a click handler afterwards.
So replace this code
<input type='button' ID='btn"
with this
<input type='button' class="new-button" ID='btn"
You can remove the onButtonClick() from the onclick event and replace
function onButtonClick() {
var btnId = $(this).val();
alert(btnId);
}
with
$(".new-button").live("click", function() {
var buttonId = $(this).attr("id");
alert(buttonId);
});