2014-03-28 62 views
0

我已經在我的頁面上使用了字段驗證器,但它們仍然允許按鈕調用Java腳本函數。例如我可以添加文本並刪除它,驗證器將顯示一個錯誤。如果點擊提交按鈕,它仍然會在onclientclick中執行javascript函數。我怎樣才能阻止它執行onclientclick函數?必填字段驗證程序允許onclick函數,即使字段無效

按鈕:

<asp:Button ID="formPost" text="Submit" class="btn btn-default" runat="server" CausesValidation="true" OnClientClick="return sendHPCIMsg();" /> 

注:我沒有獲得編輯sendHPCIMsg()函數。

字段來驗證:

<div class="form-group col-small"> 
<label class="col-sm-2 control-label">First Name: </label> 
              <div class="col-sm-8"> 
        <asp:TextBox ID="fNameTxt" runat="server" CssClass="input-small"></asp:TextBox> 
               <asp:RequiredFieldValidator ID="RequiredFieldValidatorFname" ControlToValidate="fNameTxt" runat="server" ErrorMessage="First name is required" ValidationGroup="billing" ForeColor="Red"></asp:RequiredFieldValidator> 
              </div> 
             </div> 

而且上述領域處於AJAX CollapsiblePanelExtender所以這裏是我用於啓用/禁用驗證(基於複選框)的JavaScript:

<script> 
     $('#SameBillingChkBx').bind('click', function (e) 
     { 
      if ($(this).is(':checked')) 
      { 
       $.each(Page_Validators, function (index, validator) { 
        if (validator.validationGroup == "billing") { 

         ValidatorEnable(validator, false); 

        } 
       }); 
      } 
     }) 
    </script> 

回答

1

我想通了。我寫了以下功能:

function submitform() 
{ 
    if (!Page_IsValid) { 
     return false; 
    } 
    return sendHPCIMsg(); 
} 

然後我打電話給我的點擊事件。

<asp:Button ID="formPost" text="Submit" class="btn btn-default" runat="server" CausesValidation="true" OnClientClick="return submitform();" /> 

感謝大家的幫助!

0

地址:OnClientClick="if(Page_ClientValidate()) CloseDialog();"

<asp:Button ID="formPost" text="Submit" class="btn btn-default" runat="server" CausesValidation="true" OnClientClick="if(Page_ClientValidate()) return sendHPCIMsg();" /> 
0

裏面添加功能

var val = <%= RequiredFieldValidatorFname.ClientID %>; 
    if (val.isvalid == false) { 
    //Do something 
} 

這將禁用驗證爲下一步單擊