這個微小的JavaScript以及一些CSS應該通過在點擊提交後凍結屏幕來防止重複輸入數據庫。爲什麼這個JavaScript代碼不能按預期工作?
到目前爲止,在使用該應用程序提交條目的超過200人中,其中6人已經設法提交重複條目。
我們懷疑舊版瀏覽器可能會對雙重條目負責。
我們仍在調查。
這個假設是否正確?
如果是,是否有一種方法可以改善此代碼在所有瀏覽器上工作?
我想保留這段代碼,而不是因爲愉快的外觀和感覺而去另一個,但是對更好的東西開放。
<script type="text/JavaScript">
function FreezeScreen(msg) {
scroll(0, 0);
var outerPane = document.getElementById('FreezePane');
var innerPane = document.getElementById('InnerFreezePane');
if (outerPane) outerPane.className = 'FreezePaneOn';
if (innerPane) innerPane.innerHTML = msg;
}
</script>
--css
<style type="text/css">
.FreezePaneOff
{
visibility: hidden;
display: none;
position: absolute;
top: -100px;
left: -100px;
}
.FreezePaneOn
{
position: absolute;
top: 0px;
left: 0px;
visibility: visible;
display: block;
width: 100%;
height: 100%;
background-color: #666;
z-index: 999;
filter:alpha(opacity=85);
-moz-opacity:0.85;
padding-top: 20%;
}
.InnerFreezePane
{
text-align: center;
width: 66%;
background-color: #171;
color: White;
font-size: large;
border: dashed 2px #111;
padding: 9px;
}
</style>
****** UPDATE ******
我在這裏發佈我的迴應,因爲那個東西不會讓我補充愚蠢的消息發表評論,每5秒只允許1條評論,並且自上次評論被添加以來已經過了10分鐘。
非常感謝@PPvG和@Random。我需要一個人的腳本(更可能是@ Random的,因爲我不明白@PPvG意思是什麼@ ..提交的東西...),但是我需要使用你中的一個人的js嗎?除了我目前使用的那個?此外,asp.net是否允許表單動作=「〜」...?
爲什麼你不能在點擊後禁用提交按鈕? – rid
假設可能是正確的,但在這種情況下,我會建議服務器端檢查冗餘,而不是僅依賴於客戶端。無論如何,爲了確保您的客戶端代碼正常工作,我們需要檢查CSS。謝謝。 – solendil
'if語句'是否可以註冊'true'?這可能會發生嗎?也許你需要一個'if,else'語句呢? –