您好我是java脚本的新手。在传递其值包含连字符的字符串变量作为函数参数时遇到问题。 Fire bug抛出一个错误,说'标识符在数字文字后立即启动'
我使用flexigrid来显示数据。在每一行都放置了一个图像。单击该图像时,应调用java脚本函数。设置flexigrid记录内容在java中完成,如下所示,
record.put("view","<img src='images/ic_text_document.png' onclick='view_content("+objid+")'/> ");
变量objid的值类似于c2692d22-a407-4d38-85ee-5c16f25bcce7。 Firebug通过指向第14位(在上面的示例中为4),在数字文字'错误后立即启动标识符。
尝试使用不同的引号组合传递变量,如其他帖子中所建议但dint工作。有人可以帮我吗?
答案 0 :(得分:1)
你需要在生成html之前转义objid,并在使用javascript中的值时进行unescape。
或做这样的事情......
record.put("view","<img src='images/ic_text_document.png' onclick='view_content("+ COUNTER + ")'/><div style='display:none' id='objid"+ COUNTER + "'>" + objid + "</div> ");
其中counter对于每个obj / objid只是一个不同的数字/值。 并在js:
function view_content(objidcounter){
var real_objid = document.getElementById('objid' + objidcounter).innerText;
...
...
}
答案 1 :(得分:0)
您应该引用objid
值,例如
record.put("view","<img src='images/ic_text_document.png' onclick='view_content(\""+objid+"\")'/> ");
答案 2 :(得分:0)
因为它渲染时显示为
view_content(FOOBARSTRING)
你需要引号。
record.put("view","<img src='images/ic_text_document.png' onclick='view_content(\""+objid+"\")'/> ");
理想情况下,您不会直接在html标记中添加onclick处理程序。