2011-08-26 16 views
3

我有一個Add to Cart按鈕ASP.NET - 我可以處理在javascript「ASP.NET客戶端驗證成功」事件?

產品頁面當添加到購物車按鈕被點擊,一對夫婦輸入字段使用ASP.NET驗證控件(使用客戶端驗證,以防止驗證從無效輸入發生回傳)。

爲了防止雙擊添加從多個項目到購物車,我想最初的點擊後禁用添加到購物車按鈕,而如果驗證成功。 (這將是很壞的禁用「添加到購物車」,只是因爲他們瘋玩了一個輸入)

是否可以辦理「關於ASP.NET客戶端驗證成功」,在JavaScript事件?

我可能只是結束了我自己的滾動驗證機制這一頁。

+0

我沒有張貼此作爲一個答案,因爲它不直接回答你的問題......但爲什麼不能禁用該控件,然後如果驗證失敗,重新啓用它? –

+0

這只是令我迷惑顛倒 - 如何處理驗證失敗呢?我喜歡這個想法,只是不知道如何實施。 –

回答

2

只是一個例子,但是你可以通過給你的需求:

標記:

<asp:button id="bla" runat="server" Text="bla" onClientClick="ValidationCatcher()" /> 

腳本:

function ValidationCatcher() 
{ 
    //force .net validation 
    Page_ClientValidate(); 

    for(i=0; i < Page_Validators.length; i++) 
    { 
     if(!Page_Validators[i].isvalid) 
     { 
      //do whatever you need to do 
     } 
    }  
} 
1

大廈裏克肖特的答案隱藏按鈕一旦驗證成功,&重新出現。按鈕,如果日E用戶點擊逃脫

<asp:Button ID="btnProcess" runat="server" Text="Donate" OnClick="BtnProcessClick" ValidationGroup="donate" ClientIDMode="Static" onClientClick="HideBtnProcess()"> 

<div id="pWait" >Please wait...</div> 

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#pWait").hide(); 
}); 

function HideBtnProcess() { 
    if (Page_ClientValidate("donate")) { 
     $("#btnProcess").hide(); 
     $("#pWait").show(); 
     $(document).keyup(function (event) { 
      if (event.which === 27) { 
       $("#btnProcess").show(); 
       $("#pWait").hide(); 
      } 
     }); 
    } 
}