web-dev-qa-db-fra.com

Passage du paramètre de chaîne dans la fonction JavaScript

J'essayais de passer une chaîne à une fonction javascript.

Comme il est mentionné ici- paramètre de chaîne de passe dans une fonction onclick

J'utilise ce code simple-

<!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>

Mais dans la console, cela donne une erreur comme Uncaught SyntaxError: Unexpected token }.

6
Anurag Chakraborty

Changez votre code en 

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

Renommez votre variable name en myname, bacause name est une propriété générique de window et n'est pas accessible en écriture dans la même fenêtre.

Et remplacer 

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

Avec

onclick='myfunction(myname)'

Exemple de travail:

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

7
Nina Scholz

On a répondu à la question, mais pour votre future référence de codage, vous voudrez peut-être en tenir compte.

Dans votre code HTML, ajoutez le nom en tant qu'attribut au bouton et supprimez la référence onclick.

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

Dans votre JS, saisissez le bouton à l'aide de son ID, assignez la fonction à l'événement click du bouton et utilisez la fonction pour afficher l'attribut de nom de données du bouton.

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

button.onclick = myfunction;

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

Bonne chance.

DEMO

1
Andy

Vous pouvez passer des paramètres de chaîne à des fonctions javascript comme ci-dessous:

J'ai passé 3 paramètres, le troisième étant un paramètre de chaîne, j'espère que cela aidera.

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);
}
0
Mehdi Jalal
//use this
document.write('<td width="74"><button id="button" type="button" onclick="myfunction('" + name + "')">click</button></td>')
0
Sameer