當表單在送出時,若因網路速度、電腦速度、或MOUSE鍵有問題....等不可控的因素,可能造成存檔的按鈕重複按了而產生資料存檔不可知的問題,
如:程式可能設定了若表單的[審查]欄位設為[是]時,在存檔時會在送出後存檔的程式加上更新審查者是登入者,依正常流程送出存檔了,但還在表單的畫面上,雖程式在存檔程式已經更新了審查者,但在連續按了送出的同時另一個送出又被送出,此時畫面上的審查者是空白的,又被存了一次變成了空白。
可以在表單存檔送出後將[存檔]按鈕禁用,
1.表單存檔前先檢查資料
< form name=formdata method='post' action='svmdata.php' onsubmit='return keyincheck(this)' onkeydown='if(event.keyCode==13) event.keyCode=9' enctype='multipart/form-data' >
......
< input type='submit' id='savesubmit' name='Submit' class='redbutton' accesskey='S' value='儲存(S)' >
2.javascript
function keyincheck(theForm)
{
$('#savesubmit').attr('disabled',true);//禁用
$('#savesubmit').val('存檔中..'); //將按鈕先改名稱
if (theForm.K_XXX.value == '')
{
alert('您忘記輸入XXX欄位了喔。');
theForm.K_XXX.focus();
$('#savesubmit').attr('disabled',false);
$('#savesubmit').val('儲存'); //改回正常名稱
return (false);
}
}
在送出尚未傳回SERVER前先用javascript做設定禁用按鈕,若javascript有檢查欄位空白時會回表單重新輸入,要再把禁用取消並改回原欄位名稱。