Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.03.2013, 04:20
Профессор
Отправить личное сообщение для greenwar Посмотреть профиль Найти все сообщения от greenwar
 
Регистрация: 19.08.2010
Сообщений: 150

не хочет пропускать пробелы
доброй ночи
делаю поиск по мере набора, список для поиска находится в oper_list, в <head></head>

строка в перле, который генерит html-код и выводит на экран:
str+="<a href='#' onclick=fix_oper('"+key+"','"+oper_list[key]+"');return(false)>" +oper_list[key]+ "</a><br />"


oper_list={'opera0':'оператор 0','opera1':'оператор1','opera2':'оператор2','manag0':'яманагер','manag1':'менеджер1','test11':'админыч','Gonzo':'Гонзо Емельян Сидорович'}


вот он пропускает все, кроме тех, которые с пробелом (оператор 0 и Гонзо..)
ругается так:
SyntaxError: unterminated string literal
fix_oper('Gonzo','Гонзо
указывает на 3ю кавычку

вроде кавычки все на месте, без пробелов работает, что не так то?

Последний раз редактировалось greenwar, 13.03.2013 в 15:37.
Ответить с цитированием
  #2 (permalink)  
Старый 13.03.2013, 06:02
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

greenwar,
Используйте обрамление кода в BB теги тут в топике
Ответить с цитированием
  #3 (permalink)  
Старый 13.03.2013, 09:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

greenwar,
str+="<a href='#' onclick=\"fix_oper('"+key+"','"+oper_list[key]+"');return(false)\">" +oper_list[key]+ "</a><br />"
Ответить с цитированием
  #4 (permalink)  
Старый 13.03.2013, 15:25
Профессор
Отправить личное сообщение для greenwar Посмотреть профиль Найти все сообщения от greenwar
 
Регистрация: 19.08.2010
Сообщений: 150

рони,
финальный результат получается таким:
str+="<a href='#' onclick="fix_oper('"+key+"','"+oper_list[key]+"');return(false)">" +oper_list[key]+ "</a><br />"

и он конечно же ругается (missing ; before statement)
Ответить с цитированием
  #5 (permalink)  
Старый 13.03.2013, 15:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от greenwar
'админыч',может просто кавычку забыли тут?Gonzo'
Ответить с цитированием
  #6 (permalink)  
Старый 13.03.2013, 15:37
Профессор
Отправить личное сообщение для greenwar Посмотреть профиль Найти все сообщения от greenwar
 
Регистрация: 19.08.2010
Сообщений: 150

нет. поправил
всё работает без пробелов
Ответить с цитированием
  #7 (permalink)  
Старый 13.03.2013, 16:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

greenwar,
<!DOCTYPE HTML>
<html>
<head>
  <title></title>
  <meta charset="utf-8" />
</head>
<body>
<script type="text/javascript">
function fix_oper(a,b)
{
  alert([a,b]);
}
var oper_list={'opera0':'оператор 0','opera1':'оператор1','opera2':'оператор2','manag0':'яманагер','manag1':'менеджер1','test11':'админыч','Gonzo':'Гонзо Емельян Сидорович'}
var key = 'Gonzo';
str="<a href='#' onclick=\"fix_oper('"+key+"','"+oper_list[key]+"');return(false)\">" +oper_list[key]+ "<\/a><br \/>"
document.write(str)
</script>
</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 13.03.2013, 17:07
Профессор
Отправить личное сообщение для greenwar Посмотреть профиль Найти все сообщения от greenwar
 
Регистрация: 19.08.2010
Сообщений: 150

не, str это часть большого кода, который в теле документа
выглядит так:
var outputs=document.getElementById('search_results');
function pickup(obj){
var str='', val, q, qr;
if(obj.value.length>1){ // поиск со второй буквы
    q=obj.value.toLocaleLowerCase();
    qr=q.substr(1);
    for(key in oper_list){ // перебор хеша
	val=oper_list[key].toLocaleLowerCase();
	if(0==q.indexOf(' ')){
	    if(0==val.indexOf(qr)){str+="<a href='#' onclick=fix_oper('" +key+ "','" +oper_list[key]+ "');return(false)>" +oper_list[key]+ "</a><br />"}
	}else{
	    if(val.indexOf(q)>-1){str+="<a href='#' onclick=fix_oper('" +key+ "','" +oper_list[key]+ "');return(false)>" +oper_list[key]+ "</a><br />"}
	}
    }
}

if(str){ // если строка появилась, т.е. есть результаты поиска
    outputs.innerHTML=str;
    outputs.style.display='block'
}else{
    outputs.innerHTML='';
    outputs.style.display='none';
}

} // pickup

// ФИКСИРОВАНИЕ ОПЕРАТОРА
function fix_oper(Ologin,Oname){

if(confirm('назначить оператора "'+Oname+'" на эту задачу?')){
    var operobj=document.getElementById('oper_search_form');
    operobj.innerHTML="<a href='/index.cgi?cabinet_"+Ologin+"' target='_blank'>"+Oname+"</a>"; // visible fix
    operobj.setAttribute('class','noedit');

    document.getElementById('fix_oper_l').value=Ologin; // hidden fix
    document.getElementById('fix_oper_n').value=Oname;

    var x = document.getElementById('task_statuses');
    x.options[0].selected = true;
}

} // fix_oper


и я уже сказал, что с \" не работает

Последний раз редактировалось greenwar, 13.03.2013 в 17:12.
Ответить с цитированием
  #9 (permalink)  
Старый 13.03.2013, 17:10
Профессор
Отправить личное сообщение для greenwar Посмотреть профиль Найти все сообщения от greenwar
 
Регистрация: 19.08.2010
Сообщений: 150

есть у JS ещё какие-нибудь кавычки, типа как qq qw в перле?
Ответить с цитированием
  #10 (permalink)  
Старый 13.03.2013, 17:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

greenwar,
содержание onclick надо ставить в кавычки и экранировать слешем при необходимости -- других вариантов нет.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить длинные пробелы... PsScitalec Общие вопросы Javascript 18 19.05.2012 23:49
Ajax+prepend пробелы. odgrand jQuery 3 09.10.2011 22:18
Сломал всю голову.. Посмотрите спецы.. Не хочет работать страница в mozilla-firefox.. ProniK Ваши сайты и скрипты 1 02.06.2010 19:33
Удалить ведущие и заключающие пробелы. Mutagena Javascript под браузер 4 29.03.2010 16:47