RickyTamma
RickyTamma

Reputation: 182

Passing button value for a dynamically created button

I have elements that are dynamically created. But I can't seem to add a onclick event that passes down the buttons own value. The function itself is not being called.

var btn = document.createElement('button');
            btn.innerHTML = "Edit";
            btn.value = i;
            btn.onclick ="EditData(this.value)"; // <---- 

function EditData(value) {
    alert(value);
}

Upvotes: 2

Views: 2788

Answers (2)

Ram
Ram

Reputation: 144669

Set the function itself:

var btn = document.createElement('button');
            btn.innerHTML = "Edit";
            btn.value = '2';
            btn.onclick = EditData;

function EditData(event) {
    alert(this.value);
}

Upvotes: 3

Felix Kling
Felix Kling

Reputation: 816334

You have to assign a function to onclick, not a string:

btn.onclick = function() {
  EditData(this.value);
};

Maybe you thought you had to assign a string, because in HTML we would write

onclick="...."

However, the DOM API is different from HTML.

Learn more about events and different ways to bind handlers.

Upvotes: 2

Related Questions