Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Как правильно соединить


Автор: Predator199 23.9.2012, 07:58
После нажатия на субмит, блокируется кнопка и в тоже время форма не отправляется. Как разрешить отправку формы и в тоже время заблокировать кнопку после нажатия?
Код

       function startserver(home_id) {
       document.getElementById('submit').disabled=true;
        var divInfo = document.getElementById("status" + home_id);
        divInfo.innerHTML =  "<font color=green>Грузим....</font>";
        var oXmlHttp = zXmlHttp.createRequest(); 
        } 

Автор: ksnk 23.9.2012, 08:34
Ну, к примеру, дизейблить кнопку ПОСЛЕ создания реквеста, а не ДО, как сейчас. 
Если не поможет - дизейблить ее в таймауте
Код

function startserver(home_id) {
...
setTimeout(function(){document.getElementById('submit').disabled=true;},10);
...
}

Автор: Predator199 23.9.2012, 08:50
Код

function startserver(home_id) {
        setTimeout(function(){document.getElementById('submit').disabled=true;},10);
        var divInfo = document.getElementById("status" + home_id);
        divInfo.innerHTML =  "<font color=green>Грузим....</font>";
        var oXmlHttp = zXmlHttp.createRequest(); 
        } 

Так сразу оправляет форму, кнопка не блокируется.

Почему так не работает?
Код

function startserver(home_id) {
        var divInfo = document.getElementById("status" + home_id);
        divInfo.innerHTML =  "<font color=green>Грузим....</font>";
        var oXmlHttp = zXmlHttp.createRequest(); 
       document.getElementById('submit').disabled=true;
        } 

По суте должна сразу форма отправится и в тоже время заблокировать субмит.

Автор: ksnk 23.9.2012, 09:12
На востоке, когда болела девушка из достаточно богатой семьи, врачу приходилось диагностировать болезнь только по руке. Просто по тому, что правила не позволяли увидеть больше. Качество такого лечения можно себе представить.

Что такое zXmlHttp?
Каким образом вызывается функция startserver?

Автор: Predator199 23.9.2012, 09:19
Код

    <input type="submit"  name="on" onclick="startserver(1);"  id="submit" value="Включить"/>

Код

var oXmlHttp = zXmlHttp.createRequest();
     
Без этого не отправится форма.

Автор: ksnk 23.9.2012, 09:43
Что такое zXmlHttp?

Автор: Predator199 23.9.2012, 10:34
Лишнее.
Код

       function startserver(home_id) {
        var divInfo = document.getElementById("status" + home_id);
        divInfo.innerHTML =  "<font color=green>Грузим...</font>";
        document.getElementById('submit' + home_id).disabled=true;
        }

Автор: Aliance 24.9.2012, 10:18
При клике на кнопку type="submit" происходит отправка формы решениями браузера. В вашем случае нужно через js предотвратить это дефолтное поведение (preventDefault() у объекта event), задизейблить кнопку, произвести нужные манипуляции и триггернуть событие submit у формы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)