【问题标题】:call javascript function on the click event of hyperlink在超链接的点击事件上调用javascript函数
【发布时间】:2012-12-10 19:36:58
【问题描述】:

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

我试图在超链接的单击事件上调用 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 事件是在发送查询字符串之前执行的。 如果源代码有什么问题,请告诉我。

提前谢谢.....

【问题讨论】:

    标签: javascript html jsp servlets


    【解决方案1】:
    <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 时传递值即可使用它

    【讨论】:

      【解决方案2】:

      试试这个:

      <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;
      }
      

      【讨论】:

      • 不要使用其他用户的复制粘贴
      【解决方案3】:

      提供点击的链接作为函数的参数:

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

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

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

      【讨论】:

        猜你喜欢
        • 2011-11-06
        • 2010-11-18
        • 2012-11-24
        • 1970-01-01
        • 1970-01-01
        • 2011-12-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-25
        相关资源
        最近更新 更多