Vra

Hoe kan ek baken 'n Javascript-data gebind string parameter in 'n anker OnClick gebeurtenis?

  • Ek het 'n anker tag in 'n ASP.NET Herhalers beheer.
  • Die OnClick geval van die anker bevat 'n oproep om 'n JavaScript-funksie.
  • Die Javascript funksie neem 'n string vir sy insette parameter.
  • Die string parameter is wat gevul is met 'n data gebind waarde van die Herhalers.

Ek moet die "dubbele aanhalingstekens" vir die Container.DataItem.
Ek moet die 'n enkele aanhalings 'vir die OnClick.

En ek moet nog een meer delimiter (trippel aanhalings?) Vir die insette string parameter van die Javascript funksie oproep.

Sedert ek nie kan gebruik 'n enkele aanhalings 'weer, hoe kan ek verseker die Javascript funksie ken die insette parameter is 'n string en nie 'n heelgetal?

Sonder die ekstra aanhalingstekens rondom die parameter insette string, die Javascript funksie dink ek verby in 'n heelgetal.

Die anker:

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

en hier is die 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>
Was dit nuttig?

Oplossing

Ek het onlangs soortgelyke probleem en die enigste manier om dit op te los was om gewone ou HTML kodes gebruik vir enkele (&#39;) en dubbele aanhalingstekens (&#34;).

Bronkode was totaal gemors natuurlik maar dit het gewerk.

Probeer

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

of

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

Ander wenke

onclick='javascript:ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode")%> "); '

Gebruik soos hierbo.

  

Sonder die ekstra aanhalingstekens rondom die parameter insette string, die Javascript funksie dink ek verby in 'n heelgetal.

Kan jy 'n paar basiese string funksie om JavaScript te dwing om in die verandering van dit in 'n string doen? Soos

value = value + ""

Probeer om die ekstra teks binne die bediener-kant script blok en concatenating.

onclick='<%# "ToggleDisplay(""" &  DataBinder.Eval(Container.DataItem, "JobCode") & """);" %>'

Edit: Ek is redelik seker jy kan net dubbele aanhalingstekens gebruik buite die script blok sowel

.

Die slaag veranderlike te kan funksioneer sonder enkele aanhaling of dubbel kwotasie

<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>
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top