Un aiuto per un newbie if + confirm JS

di il
1 risposte

Un aiuto per un newbie if + confirm JS

Salve a tutti, sono alle prime armi nella programmazione, e come prevedibile sto incontrando degli ostacoli.
Di solito leggo e rileggo finquando nn riesco a risolvere ma questa non riesco a passarla...
sto facendo le validazioni di un form in una pagina php, tutto fila liscio validando i primi campi, controllando che siano numerici, vuoti ecc, ma il problema sorge quando giungo in un campo( non l'ulttimo)
in cui devo controllare se sia o meno vuoto e se è vuoto vorrei una confirm in cui mi si chiede se interrompere i controlli e quindi modificare il valore del campo, oppure ignorarlo e proseguire con le altre else if della validazione.
ho provato a farlo così, riporto una if precedente e una successiva per rendere l'idea:


else if ((totint=="") || (totint=="undefined") || isNaN(totint)) {
alert("il campo Totale Interventi non può essere vuoto, nullo o non numerico, \nutilizzare il formato 15.99");
document.getElementById('TotInterventi').focus();

}



else if ((materiali=="") || (materiali=="undefined")) {
alert("Attenzione!!! il campo Materiali Impiegati risulta vuoto, controllane l'esattezza");
nomat=confirm("lasciare vuoto il campo materiali?");
if (nomat=="0")
{
return false;
}
if (nomat=="1")
{
return true;
}
}


else if (totmat=="") {
alert("Il campo Totale Materiali risulta non compilato, se nullo inserire il valore 0 (zero)");
document.getElementById('TotMateriali').focus();
return false;
ecc ecc



il controllo incriminato è quello sul campo materiali, se lo elimino fila tutto liscio a dimostrazione che il resto e giusto, mentre inserendolo cosi come riportato mi dà giustamente la alert, seguita dalla confirm, che pero rispondendo alla confirm sia con ok che con annulla, la validazione si interrompe. da quanto ho capito l'intoppo è che anche rispondendo true alla confirm, la if rimane false e quindi si ferma, ma sono tre giorni che ci batto la testa e non riesco a trovare una soluzione

1 Risposte

  • Re: Un aiuto per un newbie if + confirm JS

    pusher ha scritto:


    il controllo incriminato è quello sul campo materiali, se lo elimino fila tutto liscio a dimostrazione che il resto e giusto, mentre inserendolo cosi come riportato mi dà giustamente la alert, seguita dalla confirm, che pero rispondendo alla confirm sia con ok che con annulla, la validazione si interrompe. da quanto ho capito l'intoppo è che anche rispondendo true alla confirm, la if rimane false e quindi si ferma, ma sono tre giorni che ci batto la testa e non riesco a trovare una soluzione
    Secondo me invece lo script si interrompe per un altro motivo. Ecco le tue righe incriminate (semplificate togliendo le parentesi, in questo caso superflue):
    nomat=confirm("lasciare vuoto il campo materiali?");
    if (nomat=="0") return false;
    else return true;
    Cos'hanno in comune le due destinazioni, ovvero cliccando "OK" o "Annulla"?
    In comune hanno la sintassi RETURN.
    Return significa questo, all'interno di un metodo/funzione: "Ho verificato quello che volevo verificare, ora ti faccio sapere se l'esito è positivo o negativo".
    Dopo l'istruzione RETURN, l'esecuzione dello script si interrompe.
    Se quello che vuoi ottenere al click su "OK" è di proseguire lo script di validazione, semplicemente togli quella parte di codice, in modo che rimanga solo RETURN FALSE premendo "Annulla".
    Potresti addirittura stringare tutto il suddetto blocco in una riga sola:
    if (!confirm("lasciare vuoto il campo materiali?")) return false;
    Ovvero: SE si clicca Annulla alla domanda di conferma, ferma lo script e blocca l'operazione.
    Fammi sapere come va
Devi accedere o registrarti per scrivere nel forum
1 risposte