gpt4 book ai didi

coldfusion - ColdFusion-如何在文本字段中输出单引号?

转载 作者:行者123 更新时间:2023-12-01 00:30:31 25 4
gpt4 key购买 nike

我正在使用ColdFusion 9。

我找不到将单引号成功输出到文本字段的方法。

我使用CFSCRIPT用户定义的函数创建表单字段。 (为了简化本示例,我将选项最小化了。)

当我的输出包含单引号时,文本字段将完全被搞砸,请确保运行示例并查看HTML。我尝试过每种可能的方式使用PreserveSingleQuotes()。

// USE EITHER STRING
MyString = "This string works fine.";
MyString = "This single quote's the problem!";
writeOutput(createInputBox(MyString));

// CREATE TEXT INPUT
function createInputBox(Value) {
LOCAL.Properties = " value='#preserveSingleQuotes(ARGUMENTS.Value)#'";
LOCAL.Item = "<input size='50' type='text' #LOCAL.Properties# />";
return LOCAL.Item;
}


您知道解决方案吗?
++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++
回答

摆脱reserveSingleQuotes()函数,因为它在SQL块之外不执行任何操作。 (感谢亚当!)。

LOCAL.Properties = " value='#ARGUMENTS.Value#'";


然后,除去单引号,并用转义的双引号代替:

LOCAL.Properties = " value=""#ARGUMENTS.Value#""";


但这仍然会阻塞像这样的字符串:

MyString = "This is my F#@'''""$":""ing  problem!";


因此,添加htmlEditFormat()函数,如下所示:

LOCAL.Properties = " value=""#htmlEditFormat(ARGUMENTS.Value)#""";


谢谢您的帮助!!!

最佳答案

单引号不会给您HTML中的属性值带来问题,除非:
*您未引用属性值,例如:

<input value=#myvar#>


这里的解决方案是引用您的属性,例如:

<input value="#myvar#">


要么
*您正在引用属性,但使用单引号:

<input value='#myVar#'>


最终将是:

<input value='value with a ' in it'>


这当然是无效的标记:浏览器将值视为“带有值的值”,其余的只是垃圾。

如果您需要这样做:
*切换到使用双引号分隔符
*在变量值周围使用htmlEditFormat()(这将转义嵌入的双引号)。

要解决此类问题,请始终查看HTML源代码。这将帮助您了解正在发生的事情。

注意:对每个人都提到了prepareSingleQuote():此函数在CFQUERY块之外没有任何作用。因此,这里无济于事。

关于coldfusion - ColdFusion-如何在文本字段中输出单引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7194548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com