не хочет пропускать пробелы
доброй ночи
делаю поиск по мере набора, список для поиска находится в 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,
Используйте обрамление кода в BB теги тут в топике ![]() |
greenwar,
str+="<a href='#' onclick=\"fix_oper('"+key+"','"+oper_list[key]+"');return(false)\">" +oper_list[key]+ "</a><br />" |
рони,
финальный результат получается таким: str+="<a href='#' onclick="fix_oper('"+key+"','"+oper_list[key]+"');return(false)">" +oper_list[key]+ "</a><br />" и он конечно же ругается (missing ; before statement) |
Цитата:
|
нет. поправил
всё работает без пробелов |
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> |
не, 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 и я уже сказал, что с \" не работает |
есть у JS ещё какие-нибудь кавычки, типа как qq qw в перле?
|
greenwar,
содержание onclick надо ставить в кавычки и экранировать слешем при необходимости -- других вариантов нет. |
Часовой пояс GMT +3, время: 06:33. |