Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.01.2010, 10:38
Новичок на форуме
Отправить личное сообщение для Дядька Посмотреть профиль Найти все сообщения от Дядька
 
Регистрация: 07.01.2010
Сообщений: 3

Обработка спецсимволов в option
Столкнулся с ситуацией:
В список select загружаются данные через Ajax и создание объекта Option (весь код классический из учебников).
Данные забираются из базы с кавычками вида &quote;
Вопрос - почему процессор браузера не отрабатывает это как кавычки, а показывает также - &quote?
Ответить с цитированием
  #2 (permalink)  
Старый 07.01.2010, 10:42
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

&quote; в атрибуте value или в самом теге?
Ответить с цитированием
  #3 (permalink)  
Старый 07.01.2010, 10:47
Новичок на форуме
Отправить личное сообщение для Дядька Посмотреть профиль Найти все сообщения от Дядька
 
Регистрация: 07.01.2010
Сообщений: 3

<option ... value="">text</option>
в text = Команда &quot;Динамо&quot;

Использую Jquery
Код из учебника
(function($) {
//Функция очистки селекта
$.fn.emptySelect = function() {
return this.each(function(){
if (this.tagName=='SELECT') this.options.length = 0;
});
}

//Функция загрузки селекта
$.fn.loadSelect = function(optionsDataArray) {
return this.emptySelect().each(function(){
if (this.tagName=='SELECT') {
var selectElement = this;
$.each(optionsDataArray,function(index,optionData) {
var option = new Option(optionData[1],
optionData[0]);

if ($.browser.msie) {
selectElement.add(option);
}
else {
selectElement.add(option,null);
}
if(!optionData[0])
{
option.disabled='disabled';
$(option).addClass('disabled-option');
}
});
}
});
}
})(jQuery);

Последний раз редактировалось Дядька, 07.01.2010 в 10:49.
Ответить с цитированием
  #4 (permalink)  
Старый 07.01.2010, 10:54
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Двойные кавычки нужно экранировать только в атрибутах, подумайте почему, и подобных проблем больше не будет.
Ответить с цитированием
  #5 (permalink)  
Старый 07.01.2010, 11:03
Новичок на форуме
Отправить личное сообщение для Дядька Посмотреть профиль Найти все сообщения от Дядька
 
Регистрация: 07.01.2010
Сообщений: 3

Спасибо за быструю реакцию на вопрос.
Про то зачем нужно экранировать - знаю. Сам баловался этим
Я не специально, что-то экранирую.
Так забирается из базы - к примеру форума на phpBB.
Понятно, что на сервере можно поменять &qout обратно на ", но
в других элементах страницы эти &quot отображаются как надо, да и в select при перегрузки страницы всё нормально.
Проблема вылазит только при подгрузки через Ajax. Именно процессор браузера не обрабатывает разметку при Ajax и создании/добавлении объекта Option (хотя при перезагрузки страницы обрабатывает).
Как обойти стороной эту ситуацию способов конечно много.
Хотелось бы понять почему так происходит.

Зы: вообще то это не экранирование

Последний раз редактировалось Дядька, 07.01.2010 в 11:31.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
тег option <<многоуровневый>> DieseL Элементы интерфейса 52 18.08.2017 15:36
динамические списки Shaci jQuery 0 14.12.2009 15:03
как тегу option с определенным value присвоить selected kichSman Общие вопросы Javascript 2 24.10.2009 03:14
Вставка текста в textarea после выбора select option modelisto Общие вопросы Javascript 2 14.10.2009 19:27
Динамическое добавление нового option в form artwalek Элементы интерфейса 19 24.04.2009 17:42