2016-03-24 3 views
0

У меня есть код ниже, который должен автоматически выдавать (сохранять) форму с именем «проект», когда пользователь простаивает. Это код, который я нашел на веб-сайте учебника (забудьте имя), я попробовал его, и он только обновляет страницу?Автосохранение формы на праздность

<!-- Set auto save timeout in milliseconds 
<script type="text/javascript"> 
attachEvent(window,'load',function(){ 
    var idleSeconds = 5; 
    var idleTimer; 
    function resetTimer(){ 
    clearTimeout(idleTimer); 
    idleTimer = setTimeout(whenUserIdle,idleSeconds*1000); 
    } 
    attachEvent(document.body,'mousemove',resetTimer); 
    attachEvent(document.body,'keydown',resetTimer); 
    attachEvent(document.body,'click',resetTimer); 

    resetTimer(); // Start the timer when the page loads 
}); 

function whenUserIdle(){ 
     document.project.submit(); 
     window.location = location.href; 
} 

function attachEvent(obj,evt,fnc,useCapture){ 
    if (obj.addEventListener){ 
    obj.addEventListener(evt,fnc,!!useCapture); 
    return true; 
    } else if (obj.attachEvent){ 
    return obj.attachEvent("on"+evt,fnc); 
    } 
} 
</script> --> 

Форма Код:

<form name="project" action="<?php echo $_SERVER['PHP_SELF']; ?>" id="invoice-form" method="post" class="invoice-form" role="form" novalidate> 

ответ

1

Это код, который освежает страницу window.location = location.href; Попробуйте удалить его.

А если вам нужно установить, что атрибут вашей формы name заменяет "проект" на document.project.submit();.

Например

<form name="test_form"></form> 

document.test_form.submit(); 


Edit:
Хорошо, то функция должна быть просто

function whenUserIdle() { 
    document.project.submit(); 
} 
+0

Я добавлю свой код формы – Steven

+0

Я знаю, что он обновляется, его предполагается, он просто не отправляет форму, как это должно быть – Steven

+0

Это потому, что вы перезагружаете страницу перед отправкой, вам нужно отправить данные перед перезагрузкой страницы –

0

Вместо того, чтобы делать фактическое представление формы, рассмотреть возможность сделать запрос AJAX:

function whenUserIdle(){ 
    var formData = {}; // assemble the form data here 
    $.post("/form-submission-route", formData, function(responseData) { 
    // do something with result, if you like 
    // perhaps clear the form or throw up a notification 
    }); 
} 
+0

Я совершенно не знаком с ajax. Вышеприведенный код делает определенный здравый смысл, за исключением того, как раздел «собирать данные формы здесь» работает с образцами данных? – Steven

Смежные вопросы