Anurag Chakraborty
Anurag Chakraborty

Reputation: 521

Passing string parameter in JavaScript function

I was trying to pass a string to a JavaScript function.

As it's mentioned here - Pass a string parameter in an onclick function

I'm using this simple code-

<!DOCTYPE html>
<html>

    <body>
        <script>
            name = "Mathew";
            document.write("<button id='button' type='button' onclick='myfunction(\''" + name + "'\')'>click</button>")

            function myfunction(name)
            {
                alert(name);
            }
        </script>
    </body>

</html>

But in the console it's giving an error like Uncaught SyntaxError: Unexpected token }.

Upvotes: 16

Views: 230619

Answers (7)

Omkar Gharat
Omkar Gharat

Reputation: 99

Try this ...

onclick="myfunction('name')";

Upvotes: 2

Sameer
Sameer

Reputation: 705

Use this:

document.write('<td width="74"><button id="button" type="button" onclick="myfunction('" + name + "')">click</button></td>')

Upvotes: 1

banoth ravinder
banoth ravinder

Reputation: 1354

document.write(`<td width='74'><button id='button' type='button' onclick='myfunction(\``+ name + `\`)'>click</button></td>`)

Better to use `` than "". This is a more dynamic answer.

Upvotes: 6

MJ X
MJ X

Reputation: 9044

You can pass string parameters to JavaScript functions like below code:

I passed three parameters where the third one is a string parameter.

var btn ="<input type='button' onclick='RoomIsReadyFunc(" + ID + "," + RefId + ",\"" + YourString + "\");'  value='Room is Ready' />";

// Your JavaScript function

function RoomIsReadyFunc(ID, RefId, YourString)
{
    alert(ID);
    alert(RefId);
    alert(YourString);
}

Upvotes: 3

Andy
Andy

Reputation: 63514

The question has been answered, but for your future coding reference you might like to consider this.

In your HTML, add the name as an attribute to the button and remove the onclick reference.

<button id="button" data-name="Mathew" type="button">click</button>

In your JavaScript, grab the button using its ID, assign the function to the button's click event, and use the function to display the button's data-name attribute.

var button = document.getElementById('button');

button.onclick = myfunction;

function myfunction() {
  var name = this.getAttribute('data-name');
  alert(name);
}

DEMO

Upvotes: 6

Nina Scholz
Nina Scholz

Reputation: 386520

Rename your variable name to myname, bacause name is a generic property of window and is not writable in the same window.

And replace

onclick='myfunction(\''" + name + "'\')'

With

onclick='myfunction(myname)'

Working example:

var myname = "Mathew";
document.write('<button id="button" type="button" onclick="myfunction(myname);">click</button>');
function myfunction(name) {
    alert(name);
}

Upvotes: 10

Juned Lanja
Juned Lanja

Reputation: 1474

Change your code to

document.write("<td width='74'><button id='button' type='button' onclick='myfunction(\""+ name + "\")'>click</button></td>")

Upvotes: 20

Related Questions