首頁

2013年7月8日 星期一

其他輸入檢查,只要 return false; 就會結束送出,而 submitOneOnly 的事件就不會觸發。*/

))))** <script>
        $(function () {
            $("#btnSend").click(function () {
                var $btn = $("#btnSend");
                setTimeout(function () {
                    $btn.prop("disabled", true);
                    $("#lblMsg").text("處理中,請稍候...");
                }, 10);
            });
        });
    </script>
 
 
>








2).
<%@ Page Language="C#" %>




3).
排版顯示純文字複製文字
$(function () { $("#form1").submit(function() { $("#lblMsg").text("處理中,請稍候..."); $("#btnSend").prop("disabled", true); });});

================================================================================================================

原本直覺的想法是從"onclick事件完成"到"表單真正.submit()之前",還存在被插入其他程式邏輯的空間,不想在onclick中直接呼叫form.submit()是怕破壞原有的執行順序...!!!
在絕大多數的情境下這層顧慮是多餘的,同意在onclick中直接呼叫.submit()更簡單**
>/
>
>
);
}
}

=======================================================================================================================有個ASP.NET WebForm網頁,因PostBack後的處理邏輯頗為耗時,為防止使用者不耐久侯重複按下送出鈕**
加了幾行簡單的jQuery,在送出鈕的Click事件裡設定disabled屬性停用按鈕,再順便顯示"處理中,請稍侯..."請使用者稍安勿躁。其運作如以下範例所示: (PostBack時利用Thread.Sleep 3秒模擬長時間執行)

<%@ Page Language="C#" %>


================================================================================================================

跨瀏覽器**Submit鈕
Click事件設定disabled~~的行為各異常***/

IE9測得很開心後交付程式,使用者測試時卻回報按鈕後網頁一直顯示處理中,久久無動靜。經對照測試環境並觀察網路封包,這才發現此寫法在IE7/8(或IE9開相容模式時)會因Submit鈕被disabled而取消Post表單的行為,換句話說,HTML表單永遠不會被傳送到後端。

另外再測試了Chrome及Firefox,很有趣,Chrome跟IE8一樣會因此取消 送出,Firefox則跟IE9一樣可以正常運作。(IE9表示: 謝謝你,Firefox,不然我又要被大噹特噹了~)

無論如何,這個跨瀏覽器問題還是要解決,祭出setTimeout大法,將設定disabled的時機延到Click事件完成後,問題就排除囉


=============================================================================================================