我正在使用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事件在发送查询字符串之前正在执行。 如果源代码有任何问题,请告诉我。
提前致谢.....
答案 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
}