Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
转义引号时使用jquery将项附加到选择框_Jquery_Jquery Ui_Escaping_Quotes - Fatal编程技术网

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

转义引号时使用jquery将项附加到选择框,jquery,jquery-ui,escaping,quotes,Jquery,Jquery Ui,Escaping,Quotes,我正在向选择框添加选项,如下所示: x.append("<option value="+option_to_add+">"+option_to_add+"</option>"); 'foo"bar"baz'.replace(/"/g, '\\"'); // 'foo\"bar\"baz' x.append(“+option\u to\u add+”); 其中“选项添加”可以是用户输入的任何值。 当然,添加带有单引号或双引号的选项时会出现问题 在将这些值附加到选择列表

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

x.append("<option value="+option_to_add+">"+option_to_add+"</option>");
'foo"bar"baz'.replace(/"/g, '\\"'); // 'foo\"bar\"baz'
x.append(“+option\u to\u add+”);
其中“选项添加”可以是用户输入的任何值。 当然,添加带有单引号或双引号的选项时会出现问题

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

e、 这将是一个问题

用户类型:
he“llo

我的代码将尝试将其附加为:
您可以使用Javascript替换函数来转义或删除引号。。。

您需要转义
字符,如下:
\”

这可以通过以下方式实现自动化:

x.append("<option value="+option_to_add+">"+option_to_add+"</option>");
'foo"bar"baz'.replace(/"/g, '\\"'); // 'foo\"bar\"baz'
您只需要对
元素的
属性执行此操作,因此完整的代码片段将是:

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

x.append('如果您要添加的选项来自文本框,那么您可以尝试执行此操作

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

.append($("<option></option>").attr("value",option_to_add).text(option_to_add));
.append($(“”).attr(“值”,选项“添加”).text(选项“添加”);

escape(选项添加);
应该有效我应该think@Val:
escape
在JavaScript中的作用与您认为的不同。您一定是想到了PHP。@mathias它对值进行了编码,您可以在服务器端+1上对其进行解码是的!jQuery的.text()是一种易于使用的UTF-8安全方式,在读取和写入表单字段中的转义值时不会弄乱Unicode字符。