我需要的形式:隐藏到输出值属性中括在单引号
I need form:hidden to output value attribute enclosed in single quotes
我正在使用form:hidden标签从spring forms在json中存储一些值
<form:hidden path="myJson"/>
这个JSON值有这样的性质:
[{"html":"<a href='"index.html'">text has 'single quotes' or even '"double quotes'"</a>"}]
JSON有双引号,在字符串内用'"转义,也可能有单引号作为HTML实体转义
'
所以我一直在使用一个普通的输入类型="hidden",就像这样:
<input type="hidden" name="myJson" value='[{"html":"<a href='"index.html'">text has 'single quotes' or even '"double quotes'"</a>"}]'>
注意value属性使用单引号。现在,使用spring格式输出使用双引号:
<input type="hidden" name="myJson" value="[{"html":"<a href='"index.html'">text has 'single quotes' or even '"double quotes'"</a>"}]">
所以当我得到值时,我只得到"[{",其余的都写在页面的正文中。
同样,如果我不能像这样使用htmlEscape="false":
<input:hidden path="myJson" htmlEscape="false"/>
因为我得到了htmlEntities的所有值:
[{"html;"...
然后使用这个JSON值的库逐字读取它们,而不是写入链接,而是在主体中写入完整的HTML。
是否有办法改变输入:隐藏的输出,使其显示单引号而不是双引号?
或者,有没有更好的方法来实现这一点?要求是这个JSON可以保存HTML和单引号和双引号。
谢谢!
您可以尝试使用javascript如下:
html<input type="hidden" id="example" value="">
js
var json = JSON.stringify([{"product_id":123,"name":"stack"}]);
document.getElementById('example').setAttribute('value', json.replace(/"/g, """));
相关文章:
- 使用Javascript将图像属性输出到控制台
- 创建视频播放器(Quicktime浏览器插件)React元素,输出缺少的视频属性
- 创建nonce并将其输出为数据属性是否存在漏洞
- 如何输出对象的所有属性
- JavaScript 将输入的属性拆分为数组和输出
- 未定义获取输出而不是对象属性
- 尝试输出唯一数据属性列表(jQuery/Java)
- 对象实例为其输出“未定义”'s原型'的属性.为什么?
- AngularJs过滤到单个数组元素并输出一个属性
- 未捕获的TypeError无法设置属性'className'的空控制台输出
- 如何通过输出数组每行的一个属性来运行htmlenties()
- Jade JS没有't输出objects属性,但输出_id和__v fine
- 输出对象'属性时出错
- 如何创建一个javascript函数,输出一个带有object's属性列表的对象列表
- 从多维数组输出的数据属性选择器
- Internet Explorer innerHTML输出的属性没有引号
- 按字母或其他属性分组javascript xml输出
- 对象中的输出属性
- Javascript数组长度属性没有正确输出
- 被对象属性输出弄糊涂了