javascript – Uncaught SyntaxError: Invalid or unexpected token
javascript – Uncaught SyntaxError: Invalid or unexpected token
You should pass @item.email
in quotes then it will be treated as string argument
<td><a href =# onclick=Getinfo(@item.email); >6/16/2016 2:02:29 AM</a> </td>
Otherwise, it is treated as variable thus error is generated.
The accepted answer work when you have a single line string(the email) but if you have a
multiline string, the error will remain.
Please look into this matter:
<!-- start: definition-->
@{
dynamic item = new System.Dynamic.ExpandoObject();
item.MultiLineString = @a multi-line
string;
item.SingleLineString = a single-line string;
}
<!-- end: definition-->
<a href=# onclick=Getinfo(@item.MultiLineString)>6/16/2016 2:02:29 AM</a>
<script>
function Getinfo(text) {
alert(text);
}
</script>
Change the single-quote() to backtick(`) in Getinfo as bellow and error will be fixed:
<a href=# onclick=Getinfo(`@item.MultiLineString`)>6/16/2016 2:02:29 AM</a>
javascript – Uncaught SyntaxError: Invalid or unexpected token
I also had an issue with multiline strings in this scenario. @Imans backtick(`) solution worked great in the modern browsers but caused an invalid character error in Internet Explorer. I had to use the following:
@item.MultiLineString.Replace(Environment.NewLine, <br />)
Then I had to put the carriage returns back again in the js function. Had to use RegEx to handle multiple carriage returns.
// This will work for the following:
// hellonworld
// hello<br>world
// hello<br />world
$(#MyTextArea).val(multiLineString.replace(/n|<brs*/?>/gi, r));