Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684

    onclick - confirm e action

    Premetto che sono un novizio di Javascript.
    Sto realizzando un form, con vari controlli.

    Ecco il FORM, ovviamente il tutto è realizzato in VBScript:
    codice:
    ...
    <form id=""gestioneCarrello"" method=""post"" onsubmit=""return controlloCampi(this);"" class=""formCarrello"">")
    varie voci
    ...
    'esempio di select che ricaricano la pagina
    <select name=""modalita"" class=""boxScritte"" onchange=""document.getElementById('gestioneCarrello').submit();"">")
    response.write ("<option value=""contrassegno"" selected>contrassegno</option>")
    response.write ("<option value=""anticipato"">anticipato</option>")
    response.write ("</select>
    ...
    <input type=""submit"" name=""conferma"" value=""CONFERMA ORDINE"" onclick=""return confermaOrdine(this);"">
    codice javascirpt
    codice:
    /* Controllo campi sull'onSubmit */
    function controlloCampi(campi){
    var nome = campi.nome.value;
    var via = campi.via.value;
    var cap = campi.cap.value;
    var citta = campi.citta.value;
    var provincia = campi.citta.value;
    var telefono = campi.telefono.value;
    
    if(nome == "") && (via == "") ... && (telefono == ""){
    alert("I campi con sfondo azzurro sono obbligatori!");
    campi.nome.focus();
    campi.via.focus();
    ...
    campi.telefono .focus();
    return false;
    }
    /*
    ELSE{
    confirm('Cliccando su OK confermi l\'ordine definitivamente!');
    }
    */
    }
    
    /*CONFERMA ORDINE sull'onclick*/
    function confermaOrdine(controllo){
    confirm('Cliccando su OK confermi l\'ordine definitivamente!');
    controllo.form.action=('invioOrdine.asp');
    }
    Non avveiene il controllo sui campi menzionati e se l'utente clicca sul No della finestra di confirm, il form va alla pagina"invioOrdine.asp"

    Potreste darmi delle dritte... grazie

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Response.write non e' sicuramente una istruzione javascript... per permettere a chi non conosce i linguaggi lato server di intervenire e poter essere d'aiuto occorre postare in questo forum il codice come lo riceve il browser e non il sorgente asp.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    comunque:
    codice:
    /* Controllo campi sull'onSubmit */
    function controlloCampi(campi){
    var wnome = campi.nome.value;
    var wvia = campi.via.value;
    var wcap = campi.cap.value;
    var wcitta = campi.citta.value;
    var wprovincia = campi.citta.value;
    var wtelefono = campi.telefono.value;
    
    if(wnome == "" || wvia == "" ... ||  wtelefono == ""){ // le parentesi e la logica...
      alert("I campi con sfondo azzurro sono obbligatori!");
      campi.nome.focus();
    // campi.via.focus(); il focus non puo' essere contemporaneamente a piu' campi :dottò: 
      return false;
    }
    else {
      rv = confirm('Cliccando su OK confermi l'ordine definitivamente!');
      if (rv) controllo.form.action=('invioOrdine.asp');
      return rv;
    }
    }
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    scusami per il modo in cui ho postato lo script... ti ringrazio per la dritta... porvo subito e ti faccio sapere

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    codice:
    function controlloCampi(campi){
    //var wnome = campi.nome.value;
    var rv
    rv = confirm('Cliccando su OK confermi l\'ordine definitivamente!');
    if (rv) campi.form.action=('invioOrdine.asp');
    return rv;
    }
    il tutto funziona... appena introduco l'assegnazione della variabile wnome e tutto ol resto per il controllo dei campi.. mi salta il controllo!!! e quindi anche il confirm con action alla pagina asp!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    preciso due cose:
    1. il controllo è assegnato all'evento onClick="return controlloCampi(this);"
    2. il form è composto da tre submit (aggiorna, elimina tutto, invia ordine),
    ovviamente il controllo dei campi e del redirect alla pagina asp è assegnato al pulsante "invia ordine".

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    con l'evento onsubmit funziona mentre con l'evento onclick no!

    codice:
    function controlloCampi(campi){
    var nome = campi.nome.value;
    if(nome == ""){
    	alert('compila il campo nome!');
    	campi.nome.focus()
    	return false;
    	}
    	else {
    	var rv
    	rv = confirm('Cliccando su OK confermi l\'ordine definitivamente!');
    	if (rv) campi.form.action=('invioOrdine.asp');
    		return rv;
    	}
    }
    RIpeto ho 3 pulsanti, quindi avviare il controllo solo quando l'utente preme su uno dei 3.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    se assegno:
    <form method="post" onsubmit="return controlloCampi(this);">
    ...
    </form>

    il seguente codice:
    codice:
    function controlloCampi(campi){
    var nome = campi.nome.value;
    var via = campi.via.value;
    var cap = campi.cap.value;
    var citta = campi.citta.value;
    var provincia = campi.provincia.value;
    var telefono = campi.telefono.value;
    
    if(nome == "" || via == "" || cap == "" || citta == "" || provincia == "" || telefono == ""){
    	alert('I campi di colore azzurro sono obbligatori!');
    	campi.nome.focus()
    	return false;
    	}
    	else {
    	var rv
    	rv = confirm('Cliccando su OK confermi l\'ordine definitivamente!');
    	if (rv) campi.form.action=('invioOrdine.asp');
    	return rv;
    	}
    }
    Ho 2 azioni indesiderate:
    1. anche se clicco sul pulsante aggiorna e svuota carrello, mi appare il confirm, ovviamente mi deve apparire solo quando clicco su "INVIA ORDINE";
    2. Dopo il controllo dei campi non mi redirige alla pagina "invioOrdine.asp" ma fa un semplice refresh!!!

    QUindi se provo ad eliminare il controllo dei campi e il redirect all'evento onSubmit e lo assegno al pulsante "INVIA ORDINE" con onclick... mi fa il semplice redirect alla pagina "invioOrdine.asp" saltando il controllo dei campi!!

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.