我正在向选择框中添加选项,如下所示:
x.append("<option value="+option_to_add+">"+option_to_add+"</option>");
其中“option_to_add”可以是用户输入的任何值。 当然,添加包含单引号或双引号的选项时会出现问题。
有没有办法在将这些值附加到选择列表
之前正确转义这些值e.g。这将是一个问题
用户类型:he"llo
我的代码会尝试将其附加为:<option value="he"llo"/>
,它会崩溃html / js
感谢您的帮助!
答案 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/