Почему URL содержит данные из формы HTML? - PullRequest
0 голосов
/ 16 ноября 2011

На одной из моих страниц в Drupal у меня есть панель, содержащая следующий 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-адресом, и окно предупреждения не появляется.URL изменяется с ../contact_us на ../Contact_Us?address2=&find=Search#.Я понимаю, что address2 и search - это элементы из моего HTML-кода, но кто-нибудь может мне помочь выяснить, почему это происходит (я предполагаю, что это как-то связано с drupal, не с самим кодом, но не слишком уверен)?

1 Ответ

0 голосов
/ 16 ноября 2011

При нажатии кнопки отправки браузер отправляет HTTP-запрос GET на адрес с адресом address2 и находит значения в качестве параметров.

В вашем случае address2 не имеет значения, а find имеет значение 'Search'

Смотрите здесь для подробного объяснения: http://tools.ietf.org/html/rfc3986#section-3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...