在填充表单输入之前使用JavaScript转义字符串
我有一段代码,我获取一个属性值并将其加载到一个表单中,标题行可以如下所示: 欢迎来到美国最有价值的酒店 但是当使用这个转义函数时,字符串在撇号处被截断在填充表单输入之前使用JavaScript转义字符串,javascript,escaping,quotes,Javascript,Escaping,Quotes,我有一段代码,我获取一个属性值并将其加载到一个表单中,标题行可以如下所示: 欢迎来到美国最有价值的酒店 但是当使用这个转义函数时,字符串在撇号处被截断 var headline = escape($(this).attr("data-headline")); //populate the textbox $(e.currentTarget).find('input[name="headline"]').val(headline); 我也尝试过使用这里的解决方案:没有运气 如何填充输入并保留撇
var headline = escape($(this).attr("data-headline"));
//populate the textbox
$(e.currentTarget).find('input[name="headline"]').val(headline);
我也尝试过使用这里的解决方案:没有运气
如何填充输入并保留撇号/引号 只要使用
$(this).find('input[name="headline"]').val(this.dataset.headline);
不需要任何逃跑
但是,请注意,escape
并没有删除撇号,而是将它们替换为%27
。如果当前代码不能在标题中使用撇号,请确保包含数据标题
属性的标记被创建它的任何工具正确转义
var headline = $(this).attr("data-headline").replace(/'/g, '%27');
//populate the textbox
$(e.currentTarget).find('input[name="headline"]').val(unescape(headline));
如果浏览器兼容性很重要,则数据集仅在IE11+上可用,您可以使用
$('input[name=“headline”]”,e.currentTarget)
选择vs选择并查找。为什么需要在javascript中转义它?仅设置值不应引起任何问题。在此处调用escape
有什么意义?a) 你认为它能做什么b)没有必要转义进入.val()
的字符串escape
似乎已被弃用,主要用于uri
而不是转义撇号escape
已被弃用很久,不应用于您试图实现的目标。我确信jQuery还有另一个可以使用的函数。为什么我的字符串在填充到.val()时会在撇号处被截断@Bergi您知道unescape()
已被弃用,对吗?新版本的浏览器可能会完全降低其兼容性。感谢您的建议,您正确地转义了该属性。使用PHP,这对我来说很有用:+