Search code examples
javascriptasp.netevalhref

using a href to call javascript function with parameter


I'm trying to call javascript function from a href . the function has a parameter which will be retrieved by the eval function . But some error occurs .

script:

function rate(id) {

            // do something
        }

the a tag that will call the function:

<a href="javascript:rate(" + <%#Eval("ID")%> + ")" >rate</a>

What am I missing ?


Solution

  • You shouldn't be doing it like this, but the issue you're currently up against is probably is your quoting/concatenating.

    If <%#Eval("ID")%> simply produces an INT, this should work:

    <a href="javascript:rate( <%#Eval("ID")%> )" >rate</a>
    

    If it's a string,

    <a href="javascript:rate( '<%#Eval("ID")%>' )" >rate</a>
    

    should do it for you, although you need to handle the case of <%#Eval("ID")%> producing anything with a single quote in it.

    A Lesson:

    I say you shouldn't be doing it like this because the javascript pseudo protocol (javascript:) is defunct and improper. At worst you should be using an onclick which returns false. Ideally you'd be assigning the event programatically and preventing the event object's default action.