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

    Controllo form molto particolare.

    Ciao a tutti
    ho un problema da cui non riesco a venir fuori!
    Ho un form che si riempie di campi dinamicamente e ci sono una sequenza di campi hidden e text che hanno name sequenziali (es: prodotto1, prodotto2, prodotto3 ecc)
    Ora avrei la necessità di effettuare un controllo del form prima dell'invio solo sui campi text e non su quelli hidden dove almeno uno deve essere compilato. Tutto questo considerando che il numero totale dei campi hidden e text cambia sempre.

    Un aiutooo.....

    grazie1000
    www.telefoninook.com
    contenuti e risorse gratis per il tuo cellulare

  2. #2
    sui campi text inposti un id univoco del tipo

    Codice PHP:
    <input type="text" name="prodotto1" id="id_prodotto1" />
    <
    input type="text" name="prodotto2" id="id_prodotto2" />
    .
    .
    .

    successivamente,con una funzione js, controlli se almeno un campo con l'id = id_prodottoN
    sia compilato

  3. #3
    Utente di HTML.it L'avatar di Gino86
    Registrato dal
    Jun 2009
    Messaggi
    43
    oppure fai un controllo del tipo:

    function checkText() {
    var inputs = document.<nomeform>.getElementByTagName("input");

    for(i = 0; i < inputs.length; i++) {
    if(inputs[i].type == "text") {
    if(inputs[i].value != "") {
    return true;
    }
    }
    }
    return false;
    }

    questo penso debba funzionare.

    ottieni tutti i campi input del form poi li scandisci tutti e se è di tipo text controlli se il contenuto è diverso da vuoto, e se vero ritorni true e esci dalla funzione, se finito il ciclo di controllo non è stato trovato neanche un campo text con un valore a vuoto ritorna false.

  4. #4
    No purtrppo non funge anche correggendo il getElementByTagName("input"); in getElementsByTagName("input"); niente da fare ho provato anche modificando così:

    <script>
    function checkText() {
    var inputs = document.getElementsByTagName('input')
    for(var i = 0; i < inputs.length; i++)
    if(inputs[i].type == 'text')
    if(inputs[i].value == '')
    alert('AAAAAAAAAAAA');
    return false;
    }
    </script>

    ma mi da sempre errore di sintassi
    come fare?
    la logica dovrebbe essere questa comunque.
    www.telefoninook.com
    contenuti e risorse gratis per il tuo cellulare

  5. #5
    Utente di HTML.it L'avatar di Gino86
    Registrato dal
    Jun 2009
    Messaggi
    43
    Ho tirato giu due righe di codice alla veloce e funziona per quello che devi fare tu, ovviamente è una via molto semplice e veloce da implementare

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Convalida Form</title>


    <script type="text/javascript" language="javascript">
    function validate() {
    var valid = false;
    var items = document.getElementsByTagName("input");
    var elem = document.createElement("p");
    elem.innerHTML = "Trovati " + items.length + " campi input";
    document.getElementsByName("form1").item(0).append Child(elem);
    for(i = 0; i < items.length; i++) {
    if(items.item(i).type == "text" && items.item(i).value != "") {
    var elem2 = document.createElement("p");
    elem2.innerHTML = "Text: " + items.item(i).name + " Valore = " + items.item(i).value;
    document.getElementsByName("form1").item(0).append Child(elem2);

    valid = true;
    }
    }

    return valid;
    }
    </script>
    </head>

    <body>
    <form name="form1">
    <label for="prodotto1">Prodotto 1</label><input type="text" name="prodotto1" />

    <label for="prodotto2">Prodotto 2</label><input type="text" name="prodotto2" />

    <label for="prodotto3">Prodotto 3</label><input type="text" name="prodotto3" />

    <input type="button" value="Invia" onclick="alert('C è almeno un campo compilato? ==> ' + validate())"/>
    </form>
    </body>
    </html>

    Ciao

  6. #6
    Grazie 1000 Gino
    l'ho modificato così e funziona alla grande.

    <script>
    function validate() {
    var valid = false;
    var items = document.getElementsByTagName("input");


    for(i = 0; i < items.length; i++) {
    if(items.item(i).type == "text" && items.item(i).value != "") {
    valid = true;
    }
    }
    if (valid==false) {
    alert ("ATTENZIONE!!!\nDevi inserire la quantita richiesta almeno in un tipo di formato.");
    return false;
    }
    return valid;
    }
    </script>

    grazie ancora
    www.telefoninook.com
    contenuti e risorse gratis per il tuo cellulare

  7. #7
    Utente di HTML.it L'avatar di Gino86
    Registrato dal
    Jun 2009
    Messaggi
    43
    puoi modificare l'ultimo pezzo in

    //more stuff...
    if (!valid) {
    alert ("ATTENZIONE!!!\nDevi inserire la quantita richiesta almeno in un tipo di formato.");
    }

    return valid;
    }

    Ciao

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