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 }
.
Changez votre code en
document.write("<td width='74'><button id='button' type='button' onclick='myfunction(\""+ name + "\")'>click</button></td>")
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);
}
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.
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);
}
//use this
document.write('<td width="74"><button id="button" type="button" onclick="myfunction('" + name + "')">click</button></td>')