2011-11-16 64 views
0

在我在Drupal的一个网页,我有一个包含以下HTML代码面板:为什么URL包含HTML表单中的数据?

<head>  
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?libraries=geometry&sensor=false"></script> 

    <script type="text/javascript"> 
     var dirService, initAddr, endLoc, doc; 
     function initialize() { 
     dirService = new google.maps.DirectionsService(); 
     initAddr = "85 E San Fernando Street San Jose, CA 95113"; 
     } 

    function showLocation() { 
     doc = document.getElementById("results_area"); 

     endLoc = document.forms[0].address2.value; 
     findFromAddress(); 
    } 


     function findFromAddress() { 
     dirService.route({'destination': initAddr, 'origin': endLoc, 'travelMode': google.maps.TravelMode.DRIVING}, function (result, status) { 
      if (status === google.maps.DirectionsStatus.OK) { 
     var distance = result.routes[0].legs[0].distance.value; 
       var miles = Math.round(distance * 0.000621371192 * 100)/100; 
      alert("Distance from Loves Cupcakes is roughly" + miles 
       + " miles" + "Estimated price is (price)"); 
      } 
      else { 
      alert("INVALID ZIP CODE"); 
      } 
     }); 
    } 

    </script> 
</head> 

<body onload="initialize()"> 
<p> Enter in zip code of desired delivery location</p> 
<form action="#" onsubmit="showLocation(); return false;"> 
    <p><input class="address_input" name="address2" size="20" type="text" /> <input name="find" type="submit" value="Search" /></p> 
</form> 
<p id="results_area">&nbsp;</p> 

简单地说,它需要一个邮政编码,并从指定的位置计算距离。

HTML页面可以自行工作,但是当我将其输入到面板中时,会发生一些我不明白的奇怪东西。当我点击“提交”按钮时,页面被重新加载,但是网址略有不同,并且没有提示框弹出。 URL从../contact_us更改为../Contact_Us?address2= & find =搜索#。我理解address2和search是HTML代码中的元素,但任何人都可以帮助我弄清楚为什么会发生这种情况(我认为它与drupal有关,而不是代码本身,但不太确定)?

回答

0

当点击提交按钮时,浏览器发送一个HTTP GET请求到地址为2的地址并查找值作为参数。

在你的情况1,地址没有价值,找到了的“搜索”

值在这里看到一个全面的解释:http://tools.ietf.org/html/rfc3986#section-3

相关问题