使用 jquery 将项目附加到选择框,同时转义引号

发布于 2024-10-21 09:44:44 字数 358 浏览 6 评论 0 原文

我将选项添加到选择框,如下所示:

x.append("<option value="+option_to_add+">"+option_to_add+"</option>");

其中“option_to_add”可以是用户输入的任何值。 当然,添加带有单引号或双引号的选项时会出现问题。

在将这些值附加到选择列表之前,有没有办法正确转义这些值,

例如这将是一个问题

用户输入:he"llo 我的代码将尝试将其附加为: 这会使 html/js 崩溃

I'm adding options to a select box as follows:

x.append("<option value="+option_to_add+">"+option_to_add+"</option>");

where "option_to_add" can be any value a user has entered.
Of course, a problem arises when adding options that have single or double quotes in them.

Is there a way to escape these values correctly before appending them to a select list

e.g. this will be a problem

user types: he"llo
my code will try to append this as : <option value="he"llo"/> which crashes the html/js

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

人│生佛魔见 2024-10-28 09:44:44

我找到了一种本地 jQuery 方法来正确处理这个问题:

.append($("<option></option>").attr("value",option_to_add).text(option_to_add));

I found a native jQuery way to handle this correctly:

.append($("<option></option>").attr("value",option_to_add).text(option_to_add));
听闻余生 2024-10-28 09:44:44

你可以使用 Javascript 替换函数来转义或删除引号...
http://www.w3schools.com/jsref/jsref_replace.asp

You could you the Javascript replace function to escape or remove the quotes...
http://www.w3schools.com/jsref/jsref_replace.asp

情场扛把子 2024-10-28 09:44:44

您需要转义 " 字符,如下所示: \"

这可以按如下方式自动执行:

'foo"bar"baz'.replace(/"/g, '\\"'); // 'foo\"bar\"baz'

您只需对 值执行此操作 元素的 属性,因此完整的代码片段为:

x.append('<option value="' + option_to_add.replace(/"/g, '\\"') + '">' + option_to_add + '</option>');

You’ll need to escape the " characters, like this: \"

This can be automated as follows:

'foo"bar"baz'.replace(/"/g, '\\"'); // 'foo\"bar\"baz'

You’ll only need to do this for the value attribute of the <option> element, so the full code snippet would be:

x.append('<option value="' + option_to_add.replace(/"/g, '\\"') + '">' + option_to_add + '</option>');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文