Подтвердить что ты не робот

Тройные котировки? Как разграничить параметр строки 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>
4b9b3361

Ответ 1

У меня была аналогичная проблема, и единственный способ ее решить - использовать простые старые HTML-коды для одиночных (&#39;) и двойных кавычек (&#34;).

Исходный код, конечно, был полным беспорядком, но он работал.

Try

<a id="aShowHide" onclick='ToggleDisplay(&#34;<%# DataBinder.Eval(Container.DataItem, "JobCode") %>&#34;);'>Show/Hide</a>

или

<a id="aShowHide" onclick='ToggleDisplay(&#39;<%# DataBinder.Eval(Container.DataItem, "JobCode") %>&#39;);'>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 = &#34;12&#34;;
            var y = &#34;fmo&#34;;
            hello(x,y)">test</a>
    </body>
</html>