:::| 目前位置圖示目前位置:首頁圖示回首頁 | 主功能頁圖示相關問答
存檔按鈕禁用

[日期]:2023/01/05  [瀏覽人數]:182

當表單在送出時,若因網路速度、電腦速度、或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有檢查欄位空白時會回表單重新輸入,要再把禁用取消並改回原欄位名稱。