无法将字符串值传递给javascript函数

时间:2015-04-10 18:33:03

标签: javascript jquery

尝试将String值传递给javascript函数时,浏览器控制台上会抛出Uncaught ReferenceError。 以下是示例代码:

function mySampleTest(myId, comments){
    alert("myId " + myId);
    alert("comments : " + comments);
}

var myTest = function(value, rowIndex) {
    var myId = this.grid.getItem(rowIndex).MY_ID;
     var comments = this.grid.getItem(rowIndex).COMMENTS;
    return "<img src=<%=request.getContextPath()%>/images/image1.gif width=\"25\" height=\"25\" onClick=\"mySampleTest("+ myId +" , "+comments+")\">";
};

当用户点击图片时调用JavaScript函数mySampleTest但是当我将字符串评论传递给mySampleTest函数时,它会抛出JavaScript错误。如果我删除评论参数并将myId传递给mySampleTest(..),则可以正常使用。 请建议如何将字符串值传递给JavaScript函数。 我也试过以下,但没有用。

 return "<img src=<%=request.getContextPath()%>/images/image1.gif width=\"25\" height=\"25\" onClick=\"mySampleTest("+ myId +" , \'' + comments + '\')\">";

1 个答案:

答案 0 :(得分:3)

正如一位教授曾经告诉我的那样,编写代码的大部分内容都涉及到&#34;作为计算机&#34;。

暂时考虑一下你的功能输出,你应该很快看到问题:

<img src=whatever/your/context/path/is/images/image1.gif
     width="25" height="25"
     onClick="mySampleTest(12345, this is a comment)">

您的javascript无效:

mySampleTest(12345, this is a comment)

应该是:

mySampleTest(12345, 'this is a comment') // <--- notice the quotes

将会一直转化为:

return "<img src=\"<%=request.getContextPath()%>/images/image1.gif\" width=\"25\" height=\"25\" onClick=\"mySampleTest('"+ myId +"' , '"+comments+"')\">";

更不用说您的src属性确实需要引用。