javascript - 如何避免 HTML 文本在插入输入值时被破坏?

标签 javascript jquery html

我想用一些 html 文本替换隐藏输入的值,并将其作为纯文本发送到服务器。这是我的做法:

$('#div').append("<input type="hidden" value='<div><h1>Some text</h1><svg ...></svg></div>'");

问题是代码中断并将输入值作为 HTML 标记显示到我的模板中,这使得它在发送时无法供后端使用。

这是 jsfiddle:https://jsfiddle.net/Lindow/9p77afc3/2/ ,在检查时你会发现 svg 超出了输入的值,这就是我试图避免的。

如何解决这个问题?

最佳答案

您的 input 元素未隐藏。为其提供 type="hidden" 属性。

将其添加到问题中后,您会遇到不转义引号的问题。用反斜杠转义那些内部双引号,或使用单引号:

$('#div').append("<input type='hidden' value='<div><h1>Some text</h1><svg ...></svg></div>'");

在添加了 fiddle 的下一次编辑之后,它显示您在 svg 内容中包含单引号,并且您没有引用 value 属性的值。

这样做:

$('.elements').append("<div>hey : <input hidden value=\"" + "<svg ... </svg>" + "\"</div>");
//                                                    ^^                         ^^

更正的 fiddle :https://jsfiddle.net/9p77afc3/4/

关于javascript - 如何避免 HTML 文本在插入输入值时被破坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45460873/

相关文章:

javascript - 尝试失去范围

javascript - 溢出不包含 div 内容

html - 是什么导致我的菜单栏中的 "run"按钮堆叠?

javascript - 如何撤消 addEventListener?

javascript - 语法错误: Unexpected Token Case (I can't find it)

jquery - 在动态生成的列表中选择列表元素

javascript - 使用 HTML/CSS/JQuery 实现 WYSIWYG 报表生成器?

javascript - 通过ajax传递唯一输入值不起作用

javascript - 在一次运行中分配和返回一个变量

jquery - 根据条件添加类