не хочет пропускать пробелы
доброй ночи
делаю поиск по мере набора, список для поиска находится в 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, время: 15:23. |