добавить элемент, чтобы выбрать поле с JQuery, избегая кавычек - PullRequest
2 голосов
/ 09 марта 2011

Я добавляю опции в поле выбора следующим образом:

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

где "option_to_add" может быть любым значением, введенным пользователем. Конечно, проблема возникает при добавлении опций, содержащих одинарные или двойные кавычки.

Есть ли способ корректно экранировать эти значения перед добавлением их в список выбора

например. это будет проблемой

пользовательские типы: he"llo мой код будет пытаться добавить это как: <option value="he"llo"/>, который вылетает html / js

Спасибо за помощь!

Ответы [ 4 ]

7 голосов
/ 09 марта 2011

Эй, ребята, я нашел собственный способ jQuery для правильной обработки:

.append($("<option></option>").attr("value",option_to_add).text(option_to_add));
0 голосов
/ 09 марта 2011

Вам нужно экранировать символы ", например: \"

Это может быть автоматизировано следующим образом:

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

Это необходимо сделать только для атрибута value элемента <option>, поэтому полный фрагмент кода будет выглядеть так:

x.append('<option value="' + option_to_add.replace(/"/g, '\\"') + '">' + option_to_add + '</option>');
0 голосов
/ 09 марта 2011

Если ваш option_to_add идет из текстового поля, вы можете попробовать это http://jsfiddle.net/wEYCE/

0 голосов
/ 09 марта 2011

Вы можете использовать функцию замены Javascript для удаления или удаления кавычек ... http://www.w3schools.com/jsref/jsref_replace.asp

...