Тройные котировки? Как разграничить параметр строки Javascript в ASP.NET?
Как разделить строковый параметр, связанный с данными Javascript, в OnClick
событии OnClick
?
- У меня есть тег привязки в элементе управления повторителя ASP.NET.
- Событие
OnClick
привязки содержит вызов функции Javascript. - Функция 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>
Ответы
Ответ 1
У меня была аналогичная проблема, и единственный способ ее решить - использовать простые старые HTML-коды для одиночных ('
) и двойных кавычек ("
).
Исходный код, конечно, был полным беспорядком, но он работал.
Try
<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>
Ответ 2
onclick='javascript:ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode")%> "); '
Используйте, как указано выше.
Ответ 3
Без дополнительных кавычек вокруг параметра входной строки функция Javascript считает, что я передаю целое число.
Можете ли вы выполнить рудиментарную функцию строки, чтобы заставить JavaScript сменить его на строку? Как
value = value + ""
Ответ 4
Попробуйте добавить дополнительный текст внутри серверного блока script и конкатенировать.
onclick='<%# "ToggleDisplay(""" & DataBinder.Eval(Container.DataItem, "JobCode") & """);" %>'
Изменить: я уверен, что вы могли бы просто использовать двойные кавычки вне блока script.
Ответ 5
Передача переменной в функцию без одинарных или двойных кавычек
<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>