Как разграничить строковый параметр с привязкой к данным Javascript в событии привязки OnClick?
OnClick содержит вызов функции Javascript.Мне нужны "двойные кавычки" для Container.DataItem.
Мне нужны "одинарные кавычки" для OnClick.
И мне все еще нужен еще один разделитель (тройные кавычки?) Для параметра входной строки вызова функции Javascript.
Поскольку я не могу снова использовать «одинарные кавычки», как мне убедиться, что функция Javascript знает, что входной параметр является строкой, а не целым числом?
Без дополнительных кавычек вокруг параметра входной строки функция Javascript думает, что я передаю целое число.
Якорь:
<a id = "aShowHide" onclick='ToggleDisplay(<%# DataBinder.Eval(Container.DataItem, "JobCode") %>);' >Show/Hide</a>
И вот мой Javascript:
<script language = "JavaScript" type = "text/javascript">
/* Shows/Hides the Jobs Div */
function ToggleDisplay(jobCode)
{
/* Each div has its ID set dynamically ('d' plus the JobCode) */
var elem = document.getElementById('d' + jobCode);
if (elem)
{
if (elem.style.display != 'block')
{
elem.style.display = 'block';
elem.style.visibility = 'visible';
}
else
{
elem.style.display = 'none';
elem.style.visibility = 'hidden';
}
}
}
</script>





Without the extra quotes around the input string parameter, the Javascript function thinks I'm passing in an integer.
Можете ли вы выполнить элементарную строковую функцию, чтобы заставить JavaScript преобразовать ее в строку? Нравиться
value = value + ""
Попробуйте поместить дополнительный текст в блок сценария на стороне сервера и объединить его.
onclick='<%# "ToggleDisplay(""" & DataBinder.Eval(Container.DataItem, "JobCode") & """);" %>'
Обновлено: я почти уверен, что вы могли бы просто использовать двойные кавычки вне блока скрипта.
У меня недавно была аналогичная проблема, и единственный способ ее решить - использовать простые старые HTML-коды для одинарных (') и двойных кавычек (").
Исходный код, конечно, был полный беспорядок, но он работал.
Пытаться
<a id = "aShowHide" onclick='ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode") %>");'>Show/Hide</a>
или же
<a id = "aShowHide" onclick='ToggleDisplay('<%# DataBinder.Eval(Container.DataItem, "JobCode") %>');'>Show/Hide</a>
"- двойная кавычка." - одинарная кавычка
Передача переменной в функцию без одинарных или двойных кавычек
<html>
<head>
</head>
<body>
<script language = "javascript">
function hello(id, bu)
{
alert(id+ bu);
}
</script>
<a href = "javascript:
var x = "12";
var y = "fmo";
hello(x,y)">test</a>
</body>
</html>
onclick='javascript:ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode")%> "); '
Используйте, как указано выше.
Винна !!! Спасибо Любошу. HTML-коды отсортировали его (и да, это было беспорядочно, но это работает). Решение: onclick = 'ToggleDisplay ("");'