如何用javascript更改URL的格式?

时间:2011-11-30 18:14:32

标签: javascript jquery

我正在制作一个表格,向网站提交一些价值以预订酒店房间。网址应如下所示:

https://secure.netbookerng.com/soahotel/zablijak/cs/hseoptx_UZ/hseoid_22959509.html?autosearch=true&begindate=11/30/11&enddate=12/16/11&adults=1&children=0&rooms=1

我设法只获得一个如下所示的网址:

https://secure.netbookerng.com/soahotel/zablijak/cs/hseoptx_UZ/hseoid_22959509.html?begindate=11%2F30%2F2011&enddate=12%2F15%2F2011&rooms=1&adults=1&children=0&Check=Check+Availability

这是我做的:

<!DOCTYPE html>
<html>

<head>
<title>Demo</title>
<link type="text/css" href="css/ui-lightness/jquery-ui-1.8.16.custom.css" rel="stylesheet" />   
<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js"></script>

<script>

    $(function() {
        $('#datepicker1').datepicker({minDate:0,dateFormat:'mm/dd/yy'});
        $("#datepicker2").datepicker({minDate:0,dateFormat:'mm/dd/yy'});
        $('#arrival').datepicker({dateFormat:'mm/dd/yy'});
        $("#departure").datepicker({dateFormat:'mm/dd/yy'});    

        $("#posalji").click(function(){
          var datum1=$('#datepicker1').val();
          var datum2=$('#datepicker2').val();
          var rooms=$('#rooms').val();
          var adults=$('#adults').val();
          var children=$('#children').val();
          datum1=datum1.substring(3,5)+"/"+datum1.substring(0,2)+"/"+datum1.substring(8,10);
          datum2=datum2.substring(3,5)+"/"+datum2.substring(0,2)+"/"+datum2.substring(8,10);
        });     
    }); 
</script>

</head>
<body>      

<table border="0" cellspacing="1" cellpadding="1" style="background-color: #7a7c72; opacity: 0.8; margin-top: 15px; width: 230px;">
    <tbody>
        <tr>
            <td align="center" style="background-color: #61625b; color: #ffffff; font-weight: bold; padding: 3px; font-size: 13px;">CHECK AVAILABILITY</td>
        </tr>
        <tr>
            <td align="center"><form id="availability" type="get" action="https://secure.netbookerng.com/soahotel/zablijak/cs/hseoptx_UZ/hseoid_22959509.html">

                <table border="0" cellspacing="2" cellpadding="0" style="width: 200px;">
                    <tbody>
                        <tr>
                            <td height="22" colspan="3" align="left" valign="bottom" style="font-size: 11px; font-weight: bold;"><label>Check in</label></td>
                        </tr>
                        <tr>
                            <td height="17" colspan="3" align="left" valign="bottom"><input name="begindate" type="text" id="datepicker1" /></td>
                        </tr>
                        <tr>
                            <td height="17" colspan="3" align="left" valign="bottom" style="font-size: 11px; font-weight: bold;"><label>Check out</label></td>
                        </tr>
                        <tr>
                            <td height="17" colspan="3" align="left" valign="bottom"><input id="datepicker2" name="enddate" type="text" /></td>
                        </tr>
                        <tr style="font-size: 11px; font-weight: bold;">
                            <td width="65" height="17" align="left" valign="bottom">Rooms</td>
                            <td width="65" height="17" align="left" valign="bottom">Adults</td>
                            <td width="65" height="17" align="left" valign="bottom">Children</td>
                        </tr>
                        <tr>
                            <td width="65" height="17" align="left" valign="bottom"><select name="rooms" id="rooms"> <option value="1" selected="selected">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> </select></td>
                            <td width="65" height="17" align="left" valign="bottom"><select name="adults" id="adults"> <option value="1" selected="selected">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> </select></td>
                            <td width="65" height="17" align="left" valign="bottom"><select name="children" id="children"> <option value="0" selected="selected">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> </select></td>
                        </tr>
                        <tr>
                            <td height="40" colspan="3" align="center">
                            <input id="posalji" name="Check" type="submit" value="Check Availability">
                            </td>
                        </tr>
                    </tbody>
                </table>

                </form></td>
        </tr>
    </tbody>
</table>


</body>

</html>

为了让它成功,我需要:

  • 仅使用%2F
  • 从网址中替换/
  • 我需要在autosearch=true
  • 之后添加?
  • 我需要删除名为Check
  • 的最后一个参数

我对javascript并不是很好,我会感激一些帮助。

2 个答案:

答案 0 :(得分:1)

在表单中添加隐藏的input元素:<input type="hidden" name="autosearch" value="true" />

要删除“检查”参数,请从name元素中删除input属性。

答案 1 :(得分:0)

Javascript有 DecodeURIComponent 功能:

http://www.w3schools.com/jsref/jsref_decodeURIComponent.asp

  1. ** DecodeURIComponent(uriString)(例如%2F变成/)。

  2. 使用搜索(regEx)查找Check参数,并获取其最后发生的索引。

  3. 使用 subStr(0,uriString.Length - index + 1)在您要删除的参数之前从头到尾抓取URI。

  4. 将自动搜索附加到修剪过的字符串上。

  5. 注意,这假设Check是真正的 last ,因为第3步将在“Check”的索引之后剪切所有内容...在步骤2中使用更好的regEx表达式将允许您找到开头并且该字符串的结束索引在不影响之后可能发生或不发生的任何事情的情况下通过外科手术删除它。