在超链接的点击事件上调用javascript函数

时间:2012-12-24 10:52:12

标签: javascript html jsp servlets

我正在使用JSP和Servlet开发Web应用程序。

我试图在超链接的click事件上调用javascript函数,并且我还使用查询字符串将一些参数传递给servlet。

<td> <a href="#?id=<%=data[i][0]%>&protID=<%=data[i][1]%>&seqNo=<%=data[i][2]%>" onclick="getValues();" >Edit</a></td>

javascript函数:

<script>
function getValues()
{
    var url = document.URL;
    var planID = url.split("=");
    var pID = planID[1].split("&");

    var remURI = url.split("&");
    var protID = remURI[1].split("=");

    var s = remURI[2].split("=");

    document.getElementById('txtPlanID').value=pID[0];
    document.getElementById('txtProtID').value=protID[1];
    document.getElementById('txtSeqNo').value=s[1];

//show("block");
return false;
}
</script>

但问题是我必须在超链接上单击两次才能获得所需的结果。 我认为onClick事件在发送查询字符串之前正在执行。 如果源代码有任何问题,请告诉我。

提前致谢.....

3 个答案:

答案 0 :(得分:4)

<td> <a href="#" onclick="getValues('<%=data[i][0]%>','<%=data[i][1]%>','<%=data[i][2]%>');" >Edit</a></td>


function getValues(pID,protID,eq)
{

document.getElementById('txtPlanID').value=pID;
document.getElementById('txtProtID').value=protID;
document.getElementById('txtSeqNo').value=eq;

//show("block");
return false;

}

只需在调用javascript时传递值即可使用它

答案 1 :(得分:1)

试试这个:

<a href="javascript:return getValues('<%=data[i][0]%>','<%=data[i][1]%>','<%=data[i][2]%>');">Edit</a>

JS

function getValues(value1, value2, value3)
{
    document.getElementById('txtPlanID').value = value1;
    document.getElementById('txtProtID').value= value2;
    document.getElementById('txtSeqNo').value= value3;

    return false;
}

答案 2 :(得分:0)

将单击的链接作为参数提供给函数:

onclick="getValues(this);return false;"

然后使用链接的href属性作为url:

function getValues(link)
{
    var url = link.href;
    //more code
}