Форма HTML5 с jQuery Mobile не будет отправлена - PullRequest
1 голос
/ 31 декабря 2011

Я где-то начал работать на примере и построил это:

<!DOCTYPE html>
<html>
  <head>
    <script src="http://code.jquery.com/jquery-1.5.min.js" type="text/javascript"></script>
    <script src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js" type="text/javascript"></script>
    <script>

        jQuery(window).ready(initiate_geolocation);

        function initiate_geolocation() {
            navigator.geolocation.getCurrentPosition(handle_geolocation_query,handle_errors);
        }

        function handle_errors(error)
        {
            switch(error.code)
            {
                case error.PERMISSION_DENIED: alert("user did not share geolocation data");
                break;

                case error.POSITION_UNAVAILABLE: alert("could not detect current position");
                break;

                case error.TIMEOUT: alert("retrieving position timed out");
                break;

                default: alert("unknown error");
                break;
            }
        }

        function handle_geolocation_query(position){
            document.geo.lat.value=position.coords.latitude;
            document.geo.lon.value=position.coords.longitude;   
        }
    </script>
    <title>GPS data collection</title>
  </head>

  <body>
    <form action="processgeo.php" method="post" enctype="multipart/form-data" name="geo" id="geo">
        <fieldset>
        <label for="lat">Lat</label>
            <input type="text" id="lat" name="lat" />
            <br />
        <label for="lon">Lon</label>
            <input type="text" id="lon" name="lon" />
            <br />
        <label for="title">Title</label>
            <input type="text" id="title" name="title" />
            <br />
        <label for="type">Type</label>
            <select name="type" id="type">
                <option value="entrance">entrance</option>
                <option value="intersection">intersection</option>
                <option value="parking">parking</option>
            </select>
            <br />
        <input id="submit" type="submit" value="Send data" />
        </fieldset>
    </form>
 </body>
</html>

Я перепробовал все виды модификаций, но форма не будет отправлена.Когда я нажимаю кнопку отправки, она просто мигает, но не пытается загрузить файл действия.

Одна вещь, которую я обнаружил, заключается в том, что если я уберу все теги сценария, форма будет отправлена ​​просто отлично.Почему включение кодирования jQuery на страницу препятствует отправке?Я не пытаюсь выполнить какую-либо проверку входных данных.

Я проверил, существует ли файл действия "processgeo.php", и даже попытался настроить действие для отправки себе.Те же результаты.

ОБНОВЛЕНИЕ 2012-01-17:

Я продолжал возиться с этим, и он начал работать.Я не помню сейчас, какой отдельный элемент изменился, чтобы он заработал.По сравнению с кодом, размещенным выше, я вижу следующие изменения:

  1. Добавлено <link href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css" rel="stylesheet" type="text/css"> в разделе заголовка.

  2. Изменена форма на enctype ="application / x-www-form-urlencoded"

Будет выполнено повторное редактирование, если я найду конкретный элемент, который заставил его работать.

1 Ответ

1 голос
/ 31 декабря 2011

Я думаю, что это связано с типом enc, почему это составная форма? попробуй: application/x-www-form-urlencoded

Надеюсь, это поможет!

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