Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    36

    Messaggio dopo verifica di un campo

    Salve,
    uso aspnet 2.0.
    vorrei inviare un messaggio all'utente dopo aver verificato un certo importo. ovviamente al click di un pulsante SALVA.

    un messaggio del tipo, hai immesso un importo alto sei sicuro di voler continuare?

    si può fare aggiungendo un messaggio javascript "al volo"?

  2. #2
    Utente di HTML.it L'avatar di ciat
    Registrato dal
    May 2009
    Messaggi
    139
    se fai il postback della pagina puoi usare
    ClientScript.RegisterStartupScript(this.GetType(), 'script',"alert('fatto')")

    lo metti alla fine dell' evento di verifica lato server.
    Come valore script puoi mettere il nome di una funzione javascript, se no ti basta l' alert

  3. #3
    potresti utilizzare i ValidatorControl.

    imposti un criterio di validazione del campo di testo dove l'utente inserisce l'importo,
    dopo di che il controllo viene eseguito sia lato client che lato server.

    codice:
                <asp:TextBox ID="txtImporto" runat="server"></asp:TextBox>
                <asp:RangeValidator ID="valImporto" runat="server" ErrorMessage="Importo troppo alto"
                    MaximumValue="0" MinimumValue="1000"></asp:RangeValidator>
    il validator si attiva all'invio del form, o quando ti sposti dal controllo validato (esempio se premi il tasto tab).

    i validator sono configurabili per mandare un alert, chiamare una funzione javascript, interrompere il postback.

    in questo articolo , e anche in questo due esempi coompleti.

    ciao

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Fatto 'a mano' [attenzione: il postback NON e' interrotto, ma soltanto controllato]

    (la soluzione dei RangeValidators mi sembra interessante cmq)

    codice:
    <head runat="server">
        <title>Pagina senza titolo</title>
        <script language="javascript">
            function controllaImporto()
            {
                 if (document.form1.tb.value > 3000)
                 {
                     var esito = confirm('Hai immesso un importo superiore a 3000, vuoi continuare ?');
                     document.form1.nascosto.value=esito;
                 }
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="tb" runat="server"></asp:TextBox>
            <asp:Button ID="bt" runat="server" Text="Salva" OnClientClick="controllaImporto();" />
            
    
            <input type="hidden" id="nascosto" runat="server" />
        </div>
        </form>
    </body>
    codice:
        Protected Sub bt_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bt.Click
            If nascosto.Value = "true" Then
                Response.Write("Hai confermato..")
                ' Salvataggio dati nel DB
            End If
            If nascosto.Value = "false" Then
                Response.Write("Hai annullato l'operazione")
                ' nulla
            End If
        End Sub

  5. #5
    ciao djciko,
    mi posso permettere di modificare il tuo script e renderlo bloccante lato client?

    codice:
        <script language="javascript">
            function controllaImporto()
            {
                 if (document.form1.tb.value > 3000)
                 {
                     return confirm('Hai immesso un importo superiore a 3000, vuoi continuare ?');
                 }
            }
        </script>
    codice:
            <input type="submit" id="btnInvia" name="btnInvia" value="invia" onClick="return controllaImporto();" />
    in questo modo, se non dai conferma, non parte il postBack.

    ciao ciao

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Perfetto !

    Tanto per provare, ho lasciato il pulsante Runat=server, aggiungendo il "return" (e modificando la function come hai fatto tu), e funziona :

    codice:
    <asp:Button ID="btnInvia" Text="Invia" runat="server" OnClientClick="return controllaImporto();" />
    (alla fine la classe Button renderizza un:
    codice:
    <input type="submit" name="btnInvia" value="Invia" onclick="return controllaImporto();" id="btnInvia2" />
    )

    Direi che il quadro e' completo, per il ns amico

  7. #7
    completissimo.....

    ciao djciko

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 © 2026 vBulletin Solutions, Inc. All rights reserved.