2014-01-18 64 views
1

我有一個頁面,2個文本框控制帳號和門牌號碼。這兩個控件都需要feild驗證器以及正則表達式。我也有一些服務器端驗證,只有當客戶端驗證通過時纔會觸發。服務器端驗證發射在一臺機器,而不是在另一臺機器

問題是,在我的本地開發VM中,如果我將文本框留空並單擊按鈕,則客戶端驗證會觸發。相同的代碼部署到我們的測試環境和測試站點上,如果我點擊按鈕將文本框留空,則服務器端以及客戶端驗證都會被觸發。

我想在測試環境中也有同樣的行爲。即服務器端只有在客戶端驗證通過時纔會觸發。

是什麼導致了這種行爲?如果我在這裏忽略了一些非常基本的概念,我對於.net的新手很抱歉。 .NET版本是4.5與Visual Studio 2012

代碼帳戶號碼:

<div id="textboxAccNumCss" runat="server"> 

    <div class="form-group"> 
     <asp:Label ID="lblAccontNumber" runat="server" Text="* Account Number"></asp:Label> 
     <asp:TextBox ID="txtAccountNumber" runat="server" class="form-control"></asp:TextBox> 
    </div> 
    <div> 
     <asp:RequiredFieldValidator ID="rfvAccountNumber" runat="server" ForeColor="Red" ValidationGroup="AccountValidation" ControlToValidate="txtAccountNumber" ErrorMessage="Enter Account Number"></asp:RequiredFieldValidator> 
     <asp:RegularExpressionValidator ID="rgxAccountNumber" runat="server" ControlToValidate="txtAccountNumber" ErrorMessage="Enter in Correct Format" ForeColor="Red" ValidationGroup="AccountValidation" ValidationExpression="\d{1,12}(-\d{1})?"></asp:RegularExpressionValidator> 
    </div> 
</div> 

規範門牌號碼

<div id="textboxHSnoCss" runat="server"> 

    <div class="form-group"> 
     <asp:Label ID="lblHouseNumber" runat="server" Text="*House Number"></asp:Label> 
     <asp:TextBox ID="txtHouseNumber" runat="server" class="form-control"></asp:TextBox> 
    </div> 
    <div> 
     <asp:RequiredFieldValidator ID="rfvHouseNo" ForeColor="Red" runat="server" ValidationGroup="AccountValidation" ControlToValidate="txtHouseNumber" ErrorMessage="Enter House Number"></asp:RequiredFieldValidator> 
     <asp:RegularExpressionValidator ID="rgxHouseNo" runat="server" ValidationGroup="AccountValidation" ControlToValidate="txtHouseNumber" ForeColor="Red" ErrorMessage="Enter in Correct Format" ValidationExpression="^[a-zA-Z0-9 #-/*]*$"></asp:RegularExpressionValidator> 
    </div> 
</div> 

代碼按鈕單擊

<asp:Button ID="Button1" runat="server" Text="Continue" ValidationGroup="AccountValidation" OnClick="btnContinue_Click" class="btn btn-primary" /> 
+0

請在這裏發佈您的代碼 –

+0

已編輯的問題 – Deepika

+0

客戶端驗證腳本怎麼樣? –

回答

2

你的首要任務應該確保客戶端驗證成功完成,然後進行回發和服務器端有效通貨膨脹。您可以使用下面的js代碼來驗證頁面是否正確驗證。

if (typeof (Page_Validators) != "undefined") { 
      if (typeof (Page_ClientValidate) == 'function') { 
       isPageValid = Page_ClientValidate("AccountValidation"); 
      } 
     } 

基於isPageValid值,您可以停止或繼續回發。

相關問題