Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    37

    Form dinamico e controllo javascript

    Buona sera a tutti....

    Ho un form che creo (in asp) con un ciclo for. Dovrei, in javascript, controllare che i campi siano compilati correttamente e quindi invare il form. Fin qui tutto bene; vorrei fare in modo però che nel momento in cui mi dice che un campo non è compilato mi dica anche in quale "posizione" (nome1, nome2, nome3, ecc.).Come posso fare?
    Per chiarezza vi posto anche la pagina con relativo javascript:

    <%
    Ncomponenti = 2
    %>

    <html>

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>Ebbene</title>
    <script language="javascript">
    <!--
    larghezza=400
    altezza=400
    function regole(popupfile) {
    open(popupfile, "PopupWindow", "width="+larghezza+",height="+altezza+", left="+((screen.width-larghezza)/2)+",top="+((screen.height-altezza)/2)+",resizable=yes,scrollbars=yes");
    }


    function seleziona_tutti(ss){
    var nome = "";
    var data = "";
    var strumento = "";
    var c = 0;
    var co = 0;
    var con = 0;
    modulo=ss

    //CONTROLLO NOME BAND
    for (i=0; i<modulo.length; i++) {

    if (modulo.elements[i].name.charAt(0)=='N') {
    con++

    //val = modulo.elements[i].name.charAt(1)
    if (nome.toString()==''){
    if (modulo.elements[i].value !=''){
    nome = nome + modulo.elements[i].value;
    }
    }
    else{
    if (modulo.elements[i].value !=''){
    nome = nome +","+ modulo.elements[i].value;
    }
    }
    a = nome.split(",")
    if (a.length < con){
    alert("Controlla i campi Nome.");
    return false;
    }
    }

    }
    return true;
    }
    //-->
    </script></head>

    <body>
    <form method="POST" onsubmit="return seleziona_tutti(this);" name="f1" action="">
    <div align="center">
    <table border="0" width="540" height="81" cellspacing="0" cellpadding="0">
    <tr>
    <td width="538" height="77" colspan="3">
    <p align="center">Ebbene, siamo arrivati alla
    seconda tappa dell'iscrizione. Adesso abbiamo bisogno di qualche
    informazione tua e dei tuoi compagni. Inoltre i dati anagrafici di uno di
    voi che si assume l'incarico di rappresentarvi (per i minorenni sono
    necessari i dati anagrafici di un genitore). I campi con l'asterisco sono
    obbligatori
    </p>
    </td>
    </tr>
    <tr>
    <td width="539" height="8" colspan="3">
    <p align="center">
    </p>
    </td>
    </tr>
    <tr>
    <td width="157" height="10" align="center">
    Nome Band:
    </td>
    <td width="214" height="10" align="center">
    Numero dei componenti:
    </td>
    <td width="168" height="10" align="center">
    Tuo Nome:
    </td>
    </tr>
    <tr>
    <td width="157" height="11" align="center"><font color="#800000"><%=Session("Band")%></font></td>
    <td width="214" height="11" align="center"><font color="#800000"><%=Session("Ncomponenti")%></font></td>
    <td width="168" height="11" align="center"><font color="#800000"><%=Session("Nome")%></font></td>
    </tr>
    <tr>
    <td width="157" height="10" align="center"></td>
    <td width="214" height="10" align="center"></td>
    <td width="168" height="10" align="center"></td>
    </tr>
    </table>
    <%
    a=Ncomponenti-1
    For i =0 To a
    %>

    <table border="1" width="70%" cellspacing="1" cellpadding="0">
    <tr>
    <td width="100%" colspan="5" bgcolor="#000080"><font color="#FFFFFF">Dati
    del <%=i%>°Componente:
    </font></td>
    </tr>
    <tr>
    <td width="22%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Nome
    *</font>
    </td>
    <td width="23%" colspan="2"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Cognome*</font></td>
    <td width="55%" colspan="2"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Data di
    nascita </font>
    <font face="Verdana, Arial, Helvetica, sans-serif" size="2">(</font><font face="Verdana, Arial, Helvetica, sans-serif" size="1">inserisci
    la data in questo formato:gg/mm/aaaa</font><font face="Verdana, Arial, Helvetica, sans-serif" size="2">)</font><font face="Verdana, Arial, Helvetica, sans-serif" size="2">*</font></td>
    </tr>
    <tr>
    <td width="22%"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><input type="text" name="N<%=i%>" size="15" value="<%=Session("Nomer") %>">
    </font>
    </td>
    <td width="23%" colspan="2"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><input type="text" name="Cognome<%=i%>" size="15" value="<%=Session("Cognome") %>">
    </font>
    </td>
    <td width="55%" colspan="2"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><input type="text" name="Datanascita<%=i%>" size="15" value="<%=Session("Datanascita") %>">
    </font>
    </td>
    </tr>
    <tr>
    <td width="22%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Via*</font></td>
    <td width="10%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">N°*</font></td>
    <td width="13%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">C.A.P.*</font></td>
    <td width="20%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Città*</font></td>
    <td width="35%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Provincia*</font></td>
    </tr>
    <tr>
    <td width="22%"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><input type="text" name="Via" size="20" value="<%=Session("Via") %>">
    </font>
    </td>
    <td width="10%"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><input type="text" name="sNcivico" size="4" value="<%=Session("Ncivico") %>">
    </font>
    </td>
    <td width="13%"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><input type="text" name="Cap" size="5" value="<%=Session("Cap") %>">
    </font>
    </td>
    <td width="20%"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><input type="text" name="Citta" size="20" value="<%=Session("Citta") %>">
    </font>
    </td>
    <td width="35%"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><input type="text" name="Provincia" size="20" value="<%=Session("Provincia") %>">
    </font>
    </td>
    </tr>
    <tr>
    <td width="46%" colspan="3"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Nazione*</font></td>
    <td width="54%" colspan="2"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Telefono*</font></td>
    </tr>
    <tr>
    <td width="46%" colspan="3"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><input type="text" name="rNazione" size="20" value="<%=Session("Nazione") %>">
    </font>
    </td>
    <td width="54%" colspan="2"><font face="Verdana, Arial, Helvetica, sans-serif" size="3">
    <input type="text" name="Telefono" size="19" value="<%=Session("Telefono") %>">
    </font>
    </td>
    </tr>
    </table>

    <%
    Next
    %>
    <p align="center">
    <input type="button" value="<< Indietro" name="B2" onclick="javascript:history.back();"><input type="submit" value="Avanti >>" name="B1"><input type="reset" value="Cancella tutto" name="B2">
    </p>

    </div>
    </form>

    </body>

    </html>

    Grazie mille....

    p.s.: per semplificare la pagina postata manca un po di asp per cui ho impostato ncomponenti = 2
    aaaaaaacccciià

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Premetto che non ho controllato tutta la pagina, ma mi limito a fare dei commenti/modifiche al pezzetto di JS interessato.

    codice:
    for (var i=0; i<modulo.length; i++) {
    
      if (modulo.elements[i].name.substr(0,4)=='Nome') {
        if (modulo.elements[i].value ==''){
          alert("devi compilare tutti i campi");
          modulo.elements[i].focus();
          return false;
        }
      }
    }
    In questo modo quando trova un campo non compilato, mette il focus su tale campo ed esce.

    In alternativa puoi salvarti tutti i nomi dei campi errati in una variabile, e poi mandare un alert generale alla fine:
    codice:
    var errore = "";
    for (var i=0; i<modulo.length; i++) {
    
      if (modulo.elements[i].name.substr(0,4)=='Nome') {
        if (modulo.elements[i].value ==''){
          errore += modulo.elements[i].name +" ";
        }
      }
    }
    if (errore != '') {
      alert("ci sono campi non compilati: "+errore);
      return false;
    }
    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    37
    Ciao Mich_ grazie mille per le dritte, provo e ti farò sapere
    ancora mille grazie
    aaaaaaacccciià

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.