gpt4 book ai didi

javascript - 在 jquery 字符串中保留引号

转载 作者:行者123 更新时间:2023-11-30 11:26:35 26 4
gpt4 key购买 nike

我正在使用 jquery 创建下拉菜单的选项。用户将在文本框中输入选项文本 keyvaluekeyup()它将被添加到 <select> .

例如:如果用户输入字符串 Size ,将在下拉列表中添加一个选项,如

<option value="Size">Size</option>

HTML

<input type="text" id="keyvalue" onkeyup="addvaluetoselect()">
<select id="key"></select>

jQuery

var keyvalue = $('#keyvalue').val();
if ($("#key option[value='"+keyvalue +"']").length == 0)
$('#key').append('<option value="'+keyvalue +'">'+keyvalue +'</option>');

如果用户输入的值包含双引号或单引号,则应将其添加到选项中。但目前它不起作用。我尝试添加

var keyvalue = keyvalue .replace(/(['"])/g, "\\$1");

转义引号。但是当我尝试输入一个选项 Size's 时,该选项被创建为 Size/'s 而不是 Size's

谁能帮我解决这个问题。提前致谢。

最佳答案

不要将其附加为原始字符串,而是正确地构建它:

var keyvalue = $('#keyvalue').val();
var exists = $('#key option').map(function() {
return $(this).val();
}).toArray().indexOf(keyvalue) >= 0;
if (!exists) {
var newOption = $("<option></option>");
newOption.attr("value", keyvalue);
newOption.text(keyvalue);
$('#key').append(newOption);
}

如您所见,检查值是否已存在的检查也是错误的,通过迭代现有选项并根据用户键入的值检查它们的值来解决此问题。

关于javascript - 在 jquery 字符串中保留引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47789496/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com