Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Forzare la validazione di un controllo da javascript

    Dato un controllo col suo validatore, per esempio un CustomValidator, vorrei forzare la validazione da javascript.
    Mi dareste una mano?

    Pietro

  2. #2
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    ecco un esempio :

    Supponi di avere una textbox dove l'utente deve scrivere una stringa. Il tuo custom validator deve verificare che l'utente scriva qualsiasi cosa tranne la stringa "ciao".

    allora, per prima cosa devi fare una funzione generica che verifica se la stringa che gli viene passata è ciao, quindi hai questa

    <script language="Javascript" type="text/javascript">
    function controlla_country(sender, args)
    {
    var cod=args.Value;
    var strDaConfrontare = "ciao";
    //alert(cod);
    if (cod==strDaConfrontare)
    args.IsValid = false;
    else args.IsValid = true;
    }
    </script>

    dopo devi andare nel custom validator e impostare la proprietà CutomValidationFuction a controlla_nome che è il nome della funzione javascript definita sopra. Imposta la proprietà ControlToValidate al ID del textbox da validare e poi ovviamente il messaggio da far vedere in caso di errore.

    ecco l'esempio completo:
    codice:
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="butta._Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
        <script language="Javascript" type="text/javascript">
    
    function controlla_nome(sender, args)
    {
      var cod=args.Value;
      var strDaConfrontare = "ciao";
      //alert(cod);
      if (cod==strDaConfrontare)
        args.IsValid = false;
      else args.IsValid = true;
    }
    
    </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:CustomValidator ID="CustomValidator1" runat="server" 
                ClientValidationFunction="controlla_nome" ControlToValidate="TextBox1" 
                ErrorMessage="Hai scritto ciao" SetFocusOnError="True"></asp:CustomValidator>
        
        </div>
        </form>
    </body>
    </html>
    I got the remedy

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ciao, ti ringrazio della risposta puntuale

    Purtroppo non mi sono spiegato bene. Ci provo adesso. :master:

    Supponi di avere un CustomValidator che valida un TextBox.
    Il framework associa certamente all'evento onchange del TextBox un richiamo ad un metodo per la validazione. Per esempio, TextBox1.onchange = funzioneDiValidazione;

    Adesso, da un punto qualunque del codice client, volevo simulare l'onchange de textbox.
    Credo di poterlo fare richiamando funzioneDiValidazione() o in qualche altro modo che non conosco.
    Non so se mi sono spiegato. Ciao.
    Pietro

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Credo di essere riuscito con:

    ValidatorValidate($('cuv_f2'));

    cuv_f2 è l'id del validatore

    Pietro

  5. #5
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    si, penso che sia quella, ma a cosa ti serve "chiamare il validatore"?
    I got the remedy

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ho due TextBox con due CustomValidator. L'evento change di un TextBox valida solo il suo validatore, non entrambi. Perciò nell'evento onchange dei TextBox forzo la validazione dell'altro. Ciao.
    Pietro

  7. #7
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    di solito per questo scopo si utilizza la porprietà validationgroup!
    er esempio hai 2 textbox con due validatori e un bottone. Si assegna lo stesso gruppo ai 2 validatori e al bottone. Quando si clicca sul bottone si validano entrambi...

    ecco un esempio

    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
    ControlToValidate="TextBox1" ErrorMessage="RequiredFieldValidator"
    ValidationGroup="aa"></asp:RequiredFieldValidator>
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
    ControlToValidate="TextBox2" ErrorMessage="RequiredFieldValidator"
    ValidationGroup="aa"></asp:RequiredFieldValidator>
    <asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="aa" />
    I got the remedy

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ci provo. Grazie.
    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.