2012-01-26 28 views
1

我目前正在處理一個簡單的表單,用於將用戶輸入的信息存儲到數據庫。不活動的清除字段

表單將顯示在Kiosk的iPads上。

如果用戶走到窗體並開始填寫字段,但沒有完成並走開,我希望窗體字段爲下一個人清除。

這樣做的目的是防止某人走到一臺iPad上,其中有一半以前的用戶信息是從未提交過的。

我知道我必須使用Javascript,但我不知道從哪裏開始。

回答

2

我會說處理window對象的​​事件並保存當前時間。事情是這樣的:

var timerID = null; 
var timeoutDuration = 60000; // Put the timeout duration here 

window.addEventListener('keydown', function(e) { 
    if(timerID !== null) { 
     clearTimeout(timerID); 
     timerID = null; 
    } 

    timerID = setTimeout(function() { 
     // Clear all the fields here 
    }, timeoutDuration); 
}, false); 

Here's a demo.

+0

我會重新加載頁面 - 更簡單的解決方案,並且在頁面被修改時不太容易出錯。 –

+0

@EdHeal:我打算這麼做,但我記得有些瀏覽器保留了刷新時輸入的內容。我不知道iDevices是否會這樣做,因爲我沒有人試用它。 – Ryan

+0

我認爲這是一個人可以防止這種情況。 –

0

在我看來,最好的辦法使用它的JavaScript定時事件。

這可以通過setTimeout()clearTimeout()函數完成。然後在這些功能中,您可以處理輸入框document.getElementById("nameofElement"),然後清除它們。

很好的例子,很容易跟着看: JavaScript Timing Events

希望這有助於。

1

爲什麼不在一段時間不活動後重新加載頁面?更安全的賭注。只需使用setTimeoutclearTimeout JavaScript函數即可在字段更新以重置定時器時實現此目的。使用setTimeout重新加載頁面。這將確保頁面被重置。

參見ReloadJavaScript timing