簡體   English   中英

為什么我的表單在驗證后不會發回?

[英]Why won't my form post back after validation?

我有一個asp.net頁面,其中包含使用ShowMessageBox="True"和幾個驗證器設置的多個驗證摘要。 我遇到了一種情況,當驗證失敗時,驗證摘要會正確顯示,但是通常會觸發頁面回發的下一次點擊不會觸發回發。 所以步驟看起來像這樣:

  1. 單擊觸發驗證的按鈕。
  2. 驗證失敗,並顯示帶有失敗消息的消息框。
  3. 單擊另一個不驗證的按鈕但應該觸發回發沒有任何反應
  4. 再次單擊與步驟3相同的按鈕,回發按預期發生。

什么可能導致這種行為?

編輯:驗證是按以下方式進行的。 在asp頁面中:

<asp:Button runat="server" id="btn" onClientClick="return DoValidation();" />

在javascript中:

function DoValidation() {
    if (!Page_ClientValidate('group1'))
        return false;
    if (!Page_ClientValidate('group2'))
        return false;

    return true;
}

在對此進行了處理並仔細使用調試器之后,我終於發現,當您按照編輯問題中描述的方式進行驗證時,布爾值設置為失敗,阻止頁面的下一個PostBack通過。 我相信這是在自動完成驗證時完成的,而不是像我在這里那樣明確地進行驗證。 將上面描述的javascript更改為如下所示:

function DoValidation() {
    if (!Page_ClientValidate('group1')) {
        Page_BlockSubmit = false;
        return false;
    }
    if (!Page_ClientValidate('group2')) {
        Page_BlockSubmit = false;
        return false;
    }

    return true;
}

導致問題消失。 希望這將有助於下一個犯同樣錯誤的人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM