2013-06-18 71 views
0

我實現了一個自定義驗證與AJAX,它工作正常:ASP.NET自定義驗證和AJAX

EDITED。添加ASPX代碼

<asp:DetailsView ID="DetailsView" runat="server" Height="50px" Width="25em" DataSourceID="SqlDataSource1" AutoGenerateRows="False" DefaultMode="Insert" CellPadding="4" ForeColor="#333333" GridLines="None" OnItemInserting="DetailsView_ItemInserting"> 
     <Fields> 
      <asp:TemplateField HeaderText="Nombre *"> 
       <InsertItemTemplate> 
        <asp:TextBox ID="txtNombre" runat="server" Text='<%# Bind("nombre) %>'></asp:TextBox> 
        <asp:RequiredFieldValidator ID="requireNombre" runat="server" ControlToValidate="txtNombre" ErrorMessage="El campo 'Nombre' no puede estar vacío." ValidationGroup="DetailsGroup" Display="None"></asp:RequiredFieldValidator> 
        <asp:CustomValidator id="CustomValidator1" ControlToValidate="txtNombre" ClientValidationFunction="validateNombre" ValidationGroup="DetailsGroup" Display="none" ErrorMessage="Introduzca un nombre diferente." runat="server"/> 
       </InsertItemTemplate> 
      </asp:TemplateField> 
     </Fields> 
    </asp:DetailsView> 

功能AJAX:

 function validateNombre(src, args) { 
     var isValid; 
     $.ajax({ 
      type: "POST", 
      url: "Nombre.aspx/ComprobarNombre", 
      data: "{'nombre': '" + args.Value + "'}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      async: false, 
      success: function (msg) { 
       isValid = msg.d; 
      } 
     }); 
     args.IsValid = isValid; 

ComprobarNombre: [的WebMethod()]

public static bool ComprobarNombre(string nombre) 
     { 
      /* SQLConnections... */ 

      if(...) 
       return false; 
      else 
       return true; 
     } 

的問題是,當我每次進入的AJAX功能啓動在TextBox中的值。我只需要點擊表單按鈕就可以啓動該功能。

+0

請分享你的aspx代碼,我想看看如何定義文本框和按鈕。 – Pawan

+0

現在我分享我的aspx代碼 – user2481894

+0

任何人都可以幫助我嗎? – user2481894

回答

-1

1)消除自定義驗證 2)按一下按鈕調用客戶端功能validateNombre() 3)取功能 4內部的文本數據),並把它作爲數據參數

+0

任何代碼示例? – user2481894

+0

$( 「#鍵」)點擊(函數(E) {e.preventDefault(); $就({ 類型: 「POST」, URL: 「Nombre.aspx/ComprobarNombre」, 數據: 「{ 'NOMBRE': '」 + $( '#按鈕')VAL()+ 「'}」, 的contentType: 「應用程序/ JSON;字符集= UTF-8」, 數據類型: 「JSON」, 異步:false, success:function(msg){ isValid = msg.d; } }); } ); –

+0

嘗試了這一點.... –