2013-06-18 4 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) Выборка данных TextBox внутри функций 4) и передать его в качестве параметра данных

+0

Любой пример кода? – user2481894

+0

$ ("# кнопка") нажмите (функция (е) {e.preventDefault(); $ .ajax ({ типа:. "POST", URL: "Nombre.aspx/ComprobarNombre", данные: "{'nombre': '" + $ (' # button '). val() + "'}", contentType: "application/json; charset = utf-8", dataType: "json", async : false, success: function (msg) { isValid = msg.d; } }); } ); –

+0

Попробуйте это .... –

 Смежные вопросы

  • Нет связанных вопросов^_^