salesforce中未终止的字符串文字错误

时间:2011-04-26 18:11:43

标签: salesforce

我试图将salesforce类中的值转换为javascript变量。如果它是一个单行值,我可以获取值,但如果它的多行textarea它给出一个未终止的字符串文字错误

caseUpdate.Description = "{!ac__c.C_Info__c}";

谷歌搜索了一段时间后,我开始知道我们可以通过隐藏字段和使用DOM存储它来使用document.getElement.Id来解决这个问题。但我点击按钮调用此代码,所以我将无法创建输入文本或隐藏字段值。 谁能提供办法呢?

由于 Prady

3 个答案:

答案 0 :(得分:1)

如果您在按钮中使用OnClick Javascript,则应该能够使用标准的Salesforce JSENCODE()函数。这将为您逃脱任何角色。

请参阅the documentation

答案 1 :(得分:0)

这是因为换行符。合并字段将呈现为未转义为输出流,这意味着CRLF将推入新行并中断javascript字符串。使用div / input技巧或使用Apex将字段\r\n替换为<br/>或最适合此目的的任何内容。还要记住“也将终止你的JS字符串。

最简单的方法是在扩展程序中包含一个函数,然后您可以在整个程序中使用它

public String FixNewLine(String s) {
    if (s != null) return s.replaceAll('\r\n', '<br/>').replaceAll('"', '\\"');
    return null;
} 

答案 2 :(得分:0)

我有同样的问题,但能够解决它!技巧是JSENCODE功能。它基本上是{!JSENCODE(Obj.Field)}“;所以你用这个函数替换你的合并字段并将合并字段嵌套在函数中。在我的场景中我最终得到了opptyObj.Description =”{!JSENCODE(Case .Description)}“;作为我的总语法。首先调用我的set对象和字段,然后合并数据填充它。