Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "Плохие" символы мешают создать new Option, Одинарная кавычка, ENTER и проч 
:(
    Опции темы
cat000
  Дата 27.11.2008, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 27.11.2008

Репутация: нет
Всего: нет



Код javascript

elemValueArr[<%=mev.getField("elem_code")%>][<%=par2%>] = new Option('<%=mev.getField("ref_name")%>', '<%=mev.getField("ref_code")%>')

Скрипт  что между "<%=" и "%>" это java код 

А проблемма такая   mev.getField("ref_name") возвращает строку. В которой м.б. "нехорошие " символы, например одинарная кавычка или переход строки (ENTER) .В этом случае все перестает работать

Есть какой-нибудь "культурный " способ это побороть?
PM MAIL   Вверх
Elfebet
Дата 27.11.2008, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: нет
Всего: 14



Цитата

Есть какой-нибудь "культурный " способ это побороть? 

удалить кавычки и символ перехода строки?

Код

str = str.replace(/\'/g, "").replace(/\r/g,"").replace(/\n/g,"");


или если нужны эти кавычки и "\n"
то я обычно заменяю их на другой символ, а потом востанавливаю


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
solenko
Дата 27.11.2008, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 9
Всего: 67



cat000, вообще-то вопрос в раздел java нужно, т.к. подготовкой вывода должна заниматся серверная сторона


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
cat000
Дата 27.11.2008, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 27.11.2008

Репутация: нет
Всего: нет



Цитата(Elfebet @ 27.11.2008,  15:14)
Цитата

Есть какой-нибудь "культурный " способ это побороть? 

удалить кавычки и символ перехода строки?

Код

str = str.replace(/\'/g, "").replace(/\r/g,"").replace(/\n/g,"");


или если нужны эти кавычки и "\n"
то я обычно заменяю их на другой символ, а потом востанавливаю

Наверное, я нечетко выразилась: "культурно" это значит общий подход.

 Наверняка, есть такая очень хитрая javascript фукция, которая умеет читать ENTER , кавычку  и ПРОЧее не как спец символы, а "как есть" и отображать их как написано. smile  Типа этого ф-ия.

А не "культурно", я уже решила эту проблемму, но именно В ОДНОМ КОНКРЕТНОМ файле (а их у нас с диначеским javascrpt куча) и КОНКРЕТНО для одинорной кавычки и ENTERа ( а если еще какую "гадость" в строке закодируют????)

И решила именно заменив кавычку на ничто(""). Для тега option как либо отобразить  ее обратно у меня так и не вышло. Скажи как для этого тэга Option - скажу спасибо  smile smile 


Цитата

cat000, вообще-то вопрос в раздел java нужно, т.к. подготовкой вывода должна заниматся серверная сторона


Проблемма возникает только там ,где есть динамический javascript - нет его, нет и проблеммы. Я подумала, что и решать ее надо "на местах", на строне клиента тобишь
Тем более решение должно быть - не все же пишут серверные программы smile 
PM MAIL   Вверх
bars80080
Дата 27.11.2008, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



не факт, что серверную ошибку можно исправить на клиенте. наверно придётся такую регулярку здесь нагородить, что не обрадуешься
PM MAIL WWW   Вверх
solenko
Дата 27.11.2008, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 9
Всего: 67



cat000, если нет серверной части -> нет динамически сгенеренных скриптов -> не может возникнуть такой проблеммы.
А решать ее нужно фильтрацией ВСЕГО вывода




--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Elfebet
Дата 27.11.2008, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: нет
Всего: 14



чет я вообще проблемы невижу
вот код
[code= javascript]
    var str1 = "\'\"\n\t\v - это спец символы";
    var str2 = "'\n - это спец символы";
    el = document.getElementById('select');
    el.options[el.options.length] = new Option('_'+str1+'_');
    el.options[el.options.length] = new Option('_'+str2+'_');
[/code]
и все браузеры у меня спокойно добавили Option без ошибок


Это сообщение отредактировал(а) Elfebet - 27.11.2008, 18:49


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2752 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.