2010-01-18 28 views
5

更新:DROPDOWNLIST Page_ClientValidate後不回傳()

我剛纔已經找到了解決辦法。下面的函數作品(除去其他部分):

function confirmSubmit() { 
    if (Page_ClientValidate("Group1")) { 
     return window.confirm("Are you sure to submit the form?"); 
    } 
} 

但我不知道爲什麼,當我添加了其他部分不工作。

問:

我想有一個確認對話框用戶在表單中的所有數據填充後。 我在提交按鈕中設置了onclientclick =「return confirmSubmit()」。

function confirmSubmit() { 

    if (Page_ClientValidate("Group1")) { 
     return window.confirm("Are you sure to submit the form?"); 
    } else { 

     return false; 
    } 
} 

如果Page_ClientValidate(「組1」)返回false,下拉列表不會導致回傳後,我首先選擇的項目,只有當我選擇下拉列表第二次出現回發。

有什麼問題?

+1

您的驗證規則是說該網頁無效,並導致回發停止......這是他們應該做的。你可以發佈你的驗證器的標記嗎? Group1中的一個人說它沒有處於有效狀態。 – 2010-01-18 04:46:29

+0

我找到了解決方案。 – Billy 2010-01-18 04:56:28

回答

0

我剛剛找到解決方案。下面的函數作品(除去其他部分):

function confirmSubmit() { 
    if (Page_ClientValidate("Group1")) { 
     return window.confirm("Are you sure to submit the form?"); 
    } 
} 
11

Page_ClientValidate之後被調用時,變量Page_BlockSubmit被設置爲true,這阻止自動過帳回來。 Page_BlockSubmit在第二次點擊後重置爲false,因爲我仍然不完全理解的原因。我正在尋找更多,但我有一個解決方案,我在槍下,所以我滾動它...

只需在代碼塊中添加下面的代碼,如果頁面無效。

Page_BlockSubmit = false; 

例如,

function ValidatePage() 
{ 
    flag = true; 
    if (typeof (Page_ClientValidate) == 'function') 
    { 
     Page_ClientValidate(); 
    } 

    if (!Page_IsValid) 
    { 
     alert('All the * marked fields are mandatory.'); 
     flag = false; 
     Page_BlockSubmit = false; 
    } 
    else 
    { 
     flag = confirm('Are you sure you have filled the form completely? Click OK to confirm or CANCEL to edit this form.');  
    } 
    return flag;  
}