繁体   English   中英

如何使用javascript或jquery从url参数获取值

[英]how to get value from url parameter using javascript or jquery

我在从url获取价值时遇到问题,我有一个链接,该链接显示了我的模态

<a href='#modal?userId=<%=resultSet.getInt("drid")%>' class="button-border toggleModal">Apportionment</a>

上面的链接打开模态如下

<div id="modal" class="modal">    
    <header>
      <h2>Appointment Form</h2>      
    </header>
    <form action="addappoinment.jsp" method="post">
        <input type="hidden" id="docId" name="docid" value=""><br>
        <input type="text" required><br>
        <input type="text" required><br>
        <input type="text" required><br>
        <input type="text" required><br>
        <textarea rows="4" cols="21"></textarea><br> 
        <button class="button-border button-success" type="submit">
     Done</button>

    <button class="button-border button-error pull-right toggleModal">
      Cancel</button>       
      </form>    
  </div>

现在我有一个网址

http://localhost:8080/app/#modal?userId=1

现在我想使用javascript获取userId参数的值

<script type="text/javascript">

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

var param = getParameterByName("userId");
var userId = document.getElementById("docId");
userId.value = param;


</script>

但无法从http://localhost:8080/app/#modal?userId=1获取值

 #modal?userId=1 

查询字符串(发送到服务器)必须位于片段标识符(完全由客户端处理)之前。

?userId=1#modal

如果您不想将数据发送到服务器,则需要读取片段标识符( location.hash )并将其拆分到?? 得到你需要的东西。

使用jquery url解析器插件

$.url().param('userId');

编辑:如果您在字符串中有URL,则可以执行以下操作:

$.url('http://localhost:8080/app/#modal?userId=1').param('userId'); // returns '1'

编辑2:这有效:

$.url($.url('http://localhost:8080/app/#modal?userId=1').fsegment(1)).param('userId')) //returns '1'
function getUrlParams() {   
    var url = window.location
    var inputParam = 'DBName'//input parameter 
    var params = url.split('?');     
    var b = params[1].split('&');   
    for (i=0; i<b.length; i++){
    var c= b[i].split('=');
    if (c[0] == inputParam){
       alert(c[1]);//return the parameter value
       break;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM