Показать сообщение отдельно
  #1 (permalink)  
Старый 05.06.2017, 01:20
Новичок на форуме
Отправить личное сообщение для thrasher Посмотреть профиль Найти все сообщения от thrasher
 
Регистрация: 27.09.2008
Сообщений: 4

Check internet connection on Submit
Друзья, доброго времени суток. Очень нужна Ваша помощь. В JS не очень силен, поэтому прошу помочь людей более сведущих. Ситуация очень простая: имеется форма, которая при нажатии кнопки Send через form-submission-handler.zip отправляет данные, но перед отправкой должна проверять интернет соединение,и при отсутствии соединения не позволяло бы отправлять данные.

Пока есть такой скрипт, который расположен в html коде, но без offline.min.zip почему то не работает.
Ниже кусок html кода с кнопкой проверки интернета. Интернет проверяет корректно. Но очень нужно, чтобы проверяло непосредственно при отправке формы.
Заранее признателен за ответы, очень надеюсь на Вашу помощь.

<script src="offline.min.js"></script>
<h2>
<div id="status">Connection is:</div></h2>
<button class="button-success pure-button button-xlarge" onclick="getData()" >
&nbsp;Check connection</button>
</div>
<script>

    // Set our options for the Offline detection library
    Offline.options = {
        checkOnLoad: true,
        checks: {
            image: {
                url: function() {
                    return 'https://developer.android.com/studio/images/studio-icon_2x.png?_=' + (Math.floor(Math.random() * 1000000000));
                }
            },
            active: 'image'
        }
    }

    Offline.on('up', internetUp);
    Offline.on('down',internetDown);

    var statusDiv = document.getElementById("status");
    statusDiv.innerHTML = "Connection is: " + Offline.state;

    function getData() {

        // See if internet is up or down
        Offline.check();

        switch (Offline.state) {
            case "up":
                // If the internet is up go ahead and retrieve data.
                getFeed(function(success,response){
                    if(success){
                        alert(response);
                    }
                })
                break;
            case "down":
                alert("DOWN");
                break;
        }
    }

    function getFeed(callback) {
        var req = new XMLHttpRequest();
        req.open("GET",
                "http://tmservices1.esri.com/arcgis/rest/services/LiveFeeds/Earthquakes/MapServer?f=pjson");
        req.onload = function() {
            if (req.status === 200 && req.responseText !== "") {
                callback(true,req.responseText);
            } else {
                console.log("Attempt to retrieve feed failed.");
                callback(false,null);
            }
        };

        req.send(null);
    }

    function internetUp(){
        console.log("Internet is up.");
        statusDiv.innerHTML = "Connection is: up";
    }

    function internetDown(){
        console.log("Internet is down.");
        statusDiv.innerHTML = "Connection is: down";
    }
</script>



Кнопка Send

<button class="button-success pure-button button-xlarge">
  <i class=""></i>&nbsp;Send</button>
  <script data-cfasync="false" type="text/javascript"
    src="form-submission-handler.js"></script>
Ответить с цитированием