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

    tante form controllate da un unico script

    Salve a tutti..
    sto lavorando su una pagina jsp che interagisce con delle servlet.
    Attivo un ciclo for che mi crea tante form quanti sono gli oggetti di una lista esistente.

    Ogni form richiama una funzione javascript con onsubmit che si occupa di effettuare un semplice controllo su due campi interi della form.
    la funzione javascript è dichiarata all'inizio della pagina jsp.

    quando visualizzo la pagina accade che il controllo javascript mi funziona solo quando interagisco con i dati della prima form generata
    (ossia quella relativa al primo oggetto della lista).
    Premetto che sono un novizio di javascript..
    HO pensato che il problema sia dovuto al fatto che le form vengono generate tutte con lo stesso nome, ma non riesco a trovare un modo per passare dinamicamente il nome della form in questione alla funzione javascript.


    posto un esempio del codice:


    <SCRIPT>
    <!--
    function funct()
    {

    var quantita = document.formProdotti.quantita.value;
    var disponibilita = document.formProdotti.disp.value;
    if( quantita > disponibilita )
    {
    alert("La quantità selezionata è maggiore di quella disponibile!");
    return false;
    }
    else return true;

    }
    -->
    </SCRIPT>

    <%
    int quantita=1000

    for(int i=0; i<lista.size();i++)
    {
    Oggetto ogg = (Oggetto)lista.get(i);
    int disponibilita = ogg.getDisponibilita();

    %>

    <form name="formProdotti" method="post" action="../AggiornaServlet" onsubmit="return funct()">

    <input name="disp" value="<%=disponibilita%>" type="text">


    <input name="quantita" value="<%=quantita%>" type="hidden">

    <input class="buttonsstandard" value="AGGIORNA" type="submit">
    </form>
    <%}%>

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Funziona solo il primo, perché chiami il form e gli elementi tutti uguali nel ciclo for jsp, per risolvere metti una variabile numerica fuori dal ciclo e la incrementi di 1 nel ciclo cosi dopo avrai tot form cosi:
    formProdotti0
    quantita0
    disp0
    ---------
    formProdotti1
    quantita1
    disp1
    variabileIncrementoJsp = 1
    dopo di che il controllo fallo nel imput:

    <form name="formProdotti<%=variabileIncrementoJsp%>" method="post" action="../AggiornaServlet">

    <input name="disp<%=variabileIncrementoJsp%>" onkeyup="if(this.value>this.form.quantita<%=variab ileIncrementoJsp%>.value){alert('quantità superiore al disponibile');this.value='';} value="<%=disponibilita%>" type="text">


    <input name="quantita<%=variabileIncrementoJsp%>" value="<%=quantita%>" type="hidden">

    <input class="buttonsstandard" value=" AGGIORNA " type="submit">
    </form>


    P.S. Ciao e benvenuto su html.it
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Ciao Andrea,, ti ringrazio per la tua gentilezza e disponibilità..

    Ho provato il tuo codice e praticamente, nella condizione dell'if non gli piaceva il codice java inserito..quindi non mi faceva compilare..

    In ogni caso sono riuscito a risolvere il problema sfruttando il tuo script..

    visto che le form venivano generate automaticamente ho pensato di non utilizzare nessuna variabile ma di incorporare il tuo script direttamente nella form con "onsubmit"..
    così facendo ogni form usufrisce del suo script indipendenetemente dalle altre..
    quindi me la sono cavata molto piu' facilmente di quando potessi credere..

    questo è il codice della form all'interno del ciclo:

    <form name="formProdotti" method="post" action="../AggiornaServlet"
    onsubmit="if (this.quantita.value > this.disp.value)
    {
    alert('quantità richiesta superiore al disponibile');
    this.quantita.value = this.disp.value;
    return false
    }
    else return true;"
    >

    <input name="disp" value="<%=disponibilita%>" type="text">

    <input name="quantita" value="<%=quantita%>" type="text">


    <input class="buttonsstandard" value="AGGIORNA" type="submit">
    </form>

    GRAZIE ANCORA il tuo intervento è stato fondamentale..
    alla prossima..

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Sono contento che tua abbia risolto, ma la tua soluzione d'avere x funzioni e campi doppi/tripli/etc... nel documento è sbagliata e potresti avere problemi, oltretutto appesantisci inutilmente la pagina, riflettici e riprovaci seguendo la mia logica.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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