Escape quotes in JavaScript
You need to escape the string you are writing out into DoEdit
to scrub out the double-quote characters. They are causing the onclick
HTML attribute to close prematurely.
Using the JavaScript escape character, \
, isn't sufficient in the HTML context. You need to replace the double-quote with the proper XML entity representation, "
.
"
would work in this particular case, as suggested before me, because of the HTML context.
However, if you want your JavaScript code to be independently escaped for any context, you could opt for the native JavaScript encoding:'
becomes \x27
"
becomes \x22
So your onclick would become:DoEdit('Preliminary Assessment \x22Mini\x22');
This would work for example also when passing a JavaScript string as a parameter to another JavaScript method (alert()
is an easy test method for this).
I am referring you to the duplicate Stack Overflow question, How do I escape a string inside JavaScript code inside an onClick handler?.
<html>
<body>
<a href="#" onclick="DoEdit('Preliminary Assessment "Mini"'); return false;">edit</a>
</body>
</html>
Should do the trick.