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

    Aggiungere confirm lato client ad Button con controllo di validità

    Ho un campo asp:TextBox con un asp:RequiredFieldValidator legato al TextBox.
    Ho pure un asp:Button.

    Vorrei aggiungere al Button un evento click lato client, con un confirm.

    Nell'evento init del Button ho aggiungo:
    codice:
    Me.Button1.Attributes.Add("onclick", "return confirm('Confermi l\'invio?')")
    Ed ottengo il codice html che ovviamente non funziona:
    codice:
    <input type="submit" name="Button1" value="Invia" onclick="if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); " language="javascript" id="Button1" onclick="return confirm('Confermi l\'invio?')" />

    La domanda è: come posso aggiungere un confirm lato client dopo aver superato il controllo di validità?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    236

    prova

    con l'evento prerender del bottone...però ti avverto che all'evento click del bottone ci piazzi del codice java, lui eseguirà solo quello e non il codebheind del bottone

    se ci riesci fammi un fischio

    koning

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: prova

    Originariamente inviato da koning
    con l'evento prerender del bottone...però ti avverto che all'evento click del bottone ci piazzi del codice java, lui eseguirà solo quello e non il codebheind del bottone

    se ci riesci fammi un fischio

    koning
    Ti ringrazio della risposta, ma non funziona:

    Nell'html risultante ci sono 2 onclick:
    1) lo mette in automatico
    onclick="if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); "

    2) lo aggiungo io
    onclick="return confirm('Confermi l\'invio?')"

    Bisognerebbe trovare il modo di riunirli.

    Ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    236

    prova

    invece di scrivere il java a code bheind, prova ad inserirlo nell'html come script in una funzione, e prova a richiamarlo quando fa

    if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); "

    koning

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: prova

    Originariamente inviato da koning
    invece di scrivere il java a code bheind, prova ad inserirlo nell'html come script in una funzione, e prova a richiamarlo quando fa

    if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); "

    koning
    codice:
    <asp:Button id="Button1" runat="server" Text="Invia" OnClick="return confirm('Confermi l\'invio?')"></asp:Button>
    va in errore:
    "return" non è un membro di "ASP.a1_aspx".

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    236

    fai cosi

    <script language=javascript type="TEXT/javascript">

    function say(message) {
    return confirm(message)
    }
    </script>
    ...
    <input type="submit" name="Button1" value="Invia" onclick="say('Confermi l'invio?')" />

    prova così...spero sia ok

    koning

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: fai cosi

    Originariamente inviato da koning
    <script language=javascript type="TEXT/javascript">

    function say(message) {
    return confirm(message)
    }
    </script>
    ...
    <input type="submit" name="Button1" value="Invia" onclick="say('Confermi l'invio?')" />

    prova così...spero sia ok

    koning
    Innanzi tutto, grazie dell'interessamento.
    Per riordinare le idee, riassumo la domanda.
    Un esempio reale. Un form per acquisire dati dall'utente. Prima di inviare il form, si convalida. Se la convalida ha successo, ulteriore messaggio di conferma (pensa ad esempio alla cancellazione dati)
    Per ragionare costruisco un esempietto molto semplice. Un solo campo testo col controllo di convalida ed il pulsante di invio.
    Il tutto realizzato con controlli server (altrimenti sarebbe troppo facile). Allora, non riesco a costruire l'ultimo messaggio di conferma prima di inviare i dati.
    Per ragionare su cose concrete, invio il codice:

    pagina.aspx
    codice:
    <%@ Page Language="vb" AutoEventWireup="false" Codebehind="a1.aspx.vb" Inherits="corso_apogeo.a11"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    	<HEAD>
    		<title>a1</title>
    		<meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
    		<meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
    		<meta name="vs_defaultClientScript" content="JavaScript">
    		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    	</HEAD>
    
    	<body>
    		<form id="Form1" method="post" runat="server" >
    			
    
    
    				<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
    				<asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ErrorMessage="Campo obbligato" ControlToValidate="TextBox1"></asp:RequiredFieldValidator></P>
    			
    
    
    				<asp:Button id="Button1" runat="server" Text="Invia"></asp:Button></P>
    
    		</form>
    	</body>
    </HTML>

    codice sottostante
    codice:
    Public Class a11
        Inherits System.Web.UI.Page
        Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
        Protected WithEvents RequiredFieldValidator1 As System.Web.UI.WebControls.RequiredFieldValidator
        Protected WithEvents Button1 As System.Web.UI.WebControls.Button
    
    #Region " Codice generato da Progettazione Web Form "
    
        'Chiamata richiesta da Progettazione Web Form.
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
    
        End Sub
    
        Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
            'CODEGEN: questa chiamata al metodo è richiesta da Progettazione Web Form.
            'Non modificarla nell'editor del codice.
            InitializeComponent()
        End Sub
    
    #End Region
    
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'Inserire qui il codice utente necessario per inizializzare la pagina
        End Sub
    
        Private Sub Button1_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Init
            'non funziona
            CType(sender, Button).Attributes.Add("onclick", "return confirm('Confermi l\'invio?')")
        End Sub
    
    End Class

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    236

    ok...il problema è

    che il return di javascript ( secondo il mio modesto parere ) restituisce il valore sul client e non sul server...quindi il valore del confirm vale solo dal lato cliente...qualcuno ha implementato una classe al seguente link che spiega come prendere il valore del client e utilizzarlo sul server

    http://www.ugidotnet.org/articles/ar...ead.aspx?ID=22

    sinceramente parlando io sono un programmatore VB e con asp.net non mi ritrovo completamente perso, però riesco a fare pochissime cose rispetto a quelle che sono abituato a fare con VB...immagino che sia la stessa cosa anche per voi!!

    comunque è decisamente potente com linguaggio...anche se non lo so ancora usare decentemente ( raggiunge una certa potenza se si aggiunge la conoscenza di javascript e vb script senza contare una notevole esperienza di programmazione web )
    Ciao

    koning

  9. #9
    Scusate se riesumo questo post, ma vorrei chiedere a pietro09 se ha risolto in qualche modo, visto che ho il suo identico problema.
    ciao

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    nel <form metti:
    codice:
    <form id="Form1" method="post" runat="server" onsubmit="if(Page_IsValid) return confirm('Confermi?');" >
    oppure, se preferisci, aggiungi nell'evento load del server:
    codice:
    Me.RegisterOnSubmitStatement("", "if(Page_IsValid) return confirm('Confermi?');")

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