Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Jquery each non entra nel ciclo

    salve ho molti campi input con classe class_descrizione e al submit del form o return controlla_e_invia().

    Mi aspetto in console oltre a mostrare "dentro controlla e invia" che mostri tanti "dentro each" tante sono gli input con classe class_descrizione invece dentro each non appare mai , perchè

    codice:
    
        function controlla_e_invia() {
    
    
            console.log('dentro controlla e invia');
    
    
    
    
            $(".class_descrizione").each(function() {
    
    
                console.log('dentro each');
    
    
                var id_descrizione = $(this).attr("id");
    
    
                var descrizione = $('#' + id_descrizione).val()
    
    
                var id_to_get = id_descrizione.split('_');
    
    
                console.log('|'+id_to_get);
    
    
    
    
                var quantita = $('#id_class_quantita_' + id_to_get[3]).val();
                var um = $('#id_class_um_' + id_to_get[3]).val();
    
    
                console.log('um ' + um);
    
    
                if (descrizione && (quantita == '' || um == '')) {
    
    
                    alert('Quando inserisci la descrizione devi anche inserire quantita e unità di misura alla riga ' + id_to_get[3])
    
    
                    return false;
                }
    
    
            });
    
    
            //return false;
    
    
        }

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,691
    Ciao, il codice che hai postato sembra ok ma non basta per capire quali possano essere le cause del malfunzionamento che lamenti.

    Verifica intanto che non saltino fuori degli errori in console.
    Verifica che il nome della classe usata in quel selettore corrisponda esattamente alle relative classi inserite nel codice HTML.

    Per poterti dare un aiuto mirato sarebbe necessario vedere il codice dell'intera pagina. Se possibile posta il link alla pagina in questione.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Ecco il jsfiddle , ho tolto un po di php della pagina e il sistema per aggiungere le righe

    https://jsfiddle.net/Laxc2fjm/4/

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,691
    Ho visto e ripeto ciò che ti ho già indicato:
    Quote Originariamente inviata da KillerWorm
    Verifica che il nome della classe usata in quel selettore corrisponda esattamente alle relative classi inserite nel codice HTML.
    L'errore sta lì. Fai sapere se riscontri problemi nel verificare questo punto.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Ho visto e ripeto ciò che ti ho già indicato:


    L'errore sta lì. Fai sapere se riscontri problemi nel verificare questo punto.

    Hai ragione , avevo messo più cicli for per scrivere il codice in automatico ed in uno mancava la classe

  6. #6
    Quote Originariamente inviata da pippuccio76 Visualizza il messaggio
    Hai ragione , avevo messo più cicli for per scrivere il codice in automatico ed in uno mancava la classe
    HO un altro problema , il form :

    codice:
           <form action="http://localhost:8080/user_Ddt/inserisciRecord" class="col-md-12" id="myform" name="form_ddt" method="POST" onSubmit="return controlla_e_invia();" accept-charset="utf-8">
    anche se mostra l'alert correttamente poi invia lo stesso il form nonostante dopo l'alert ci sia un return false, perchè ?
    Ultima modifica di pippuccio76; 14-03-2024 a 22:50

  7. #7
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,691
    Quella riga di per sé sembra ok. Bisogna capire cosa sta avvenendo esattamente nella funzione controlla_e_invia(), oltre a verificare come hai impostato il resto del form.

    Nel tuo fiddle di esempio non riesco a riprodurre il problema. Difficile aiutarti senza vedere la pagina in azione.
    Verifica intanto se non salta fuori qualche errore nella console che possa magari influire sul risultato.

    Se non riesci a risolvere ti consiglio di postare il link ad un esempio aggiornato e indicare esattamente quali passaggi vanno fatti per poter riprodurre il problema.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  8. #8
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Quella riga di per sé sembra ok. Bisogna capire cosa sta avvenendo esattamente nella funzione controlla_e_invia(), oltre a verificare come hai impostato il resto del form.

    Nel tuo fiddle di esempio non riesco a riprodurre il problema. Difficile aiutarti senza vedere la pagina in azione.
    Verifica intanto se non salta fuori qualche errore nella console che possa magari influire sul risultato.

    Se non riesci a risolvere ti consiglio di postare il link ad un esempio aggiornato e indicare esattamente quali passaggi vanno fatti per poter riprodurre il problema.

    HO questo in console se può aiutare :

    [Violation] 'submit' handler took 2032ms

  9. #9
    ho capito l'errore , avevo un return true dopo il .each , mi aspettavo che se trovava il return false non avrebbe continuato , invece esce e esegue anche il return true fuori dal .each, allora ho modificato così :

    codice:
        function controlla_e_invia() {
    
    
    
            //console.log('dentro controlla e invia');
    
    
            var invia_form = true;
    
    
    
    
            $(".class_descrizione").each(function(e) {
    
    
                //return false;
    
    
    
    
                console.log('dentro each');
    
    
                var id_descrizione = $(this).attr("id");
    
    
                var descrizione = $('#' + id_descrizione).val()
    
    
                var id_to_get = id_descrizione.split('_');
    
    
                //console.log('|' + id_to_get);
    
    
    
    
                var quantita = $('#id_class_quantita_' + id_to_get[3]).val();
                var um = $('#id_class_um_' + id_to_get[3]).val();
    
    
                //console.log('um ' + um);
    
    
                if (descrizione && (quantita == '' || um == '')) {
    
    
                    alert('Quando inserisci la descrizione devi anche inserire quantita e unità di misura alla riga ' + id_to_get[3]);
    
    
                    invia_form = false;
                }
    
    
            });
    
    
            return invia_form;
    
    
        }

  10. #10
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,691
    Giusto, in effetti quel return faceva in modo di uscire dalla funzione, ma esce da quella definita per l'each, non da controlla_e_invia.
    La soluzione che hai adottato mi sembra buona.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

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.