Тема: checkbox на ajax
Показать сообщение отдельно
  #4 (permalink)  
Старый 25.03.2019, 12:10
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от djsidmsps
024 setTimeout('process()',1000);
Зачем вам вычислять выражение, когда у вас есть готовая функция!
setTimeout(process, 1000);


Пока не придёт ответ, галочка должна находиться в заблокированном состоянии, чтобы не меняли её состояние, и чтобы не запускалась функция отправки... притом если не удалось связаться с сервером, то состояние возвращается на место!
<label><input type="checkbox" onchange="lightSwitch(this)">Принудительное освещение</label>

<script>

function lightSwitch(checkbox) {
    var initialPosition = checkbox.checked;
    var url  = "/Ligntonoff?state=" + (initialPosition ? 1 : 0);
    var xhr = new XMLHttpRequest();

    xhr.onreadystatechange = function() {
        if(xhr.readyState == 4) {
            checkbox.disabled = false;
            if(xhr.status === 200) checkbox.checked = initialPosition;
        } 
    };

    xhr.open("GET", url, true);
    xhr.send();

    checkbox.checked = !initialPosition;
    checkbox.disabled = true;
}

</script>

Последний раз редактировалось Malleys, 25.03.2019 в 12:51.
Ответить с цитированием