在转义引号时,将项目附加到带有jquery的框中

时间:2011-03-09 10:20:33

标签: jquery jquery-ui escaping quotes

我正在向选择框中添加选项,如下所示:

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

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

有没有办法在将这些值附加到选择列表

之前正确转义这些值

e.g。这将是一个问题

用户类型:he"llo     我的代码会尝试将其附加为:<option value="he"llo"/>,它会崩溃html / js

感谢您的帮助!

4 个答案:

答案 0 :(得分:7)

嘿伙计们,我找到了一种原生的jQuery方法来正确处理这个问题:

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

这可以按如下方式自动完成:

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

您只需要对value元素的<option>属性执行此操作,因此完整的代码段将为:

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

答案 3 :(得分:0)

如果您的option_to_add来自文本框,那么您可以尝试http://jsfiddle.net/wEYCE/