Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    controllo campi con select

    Buongiorno, vorrei sapere come si fa a disattivare il campo quando il select option non avrà bisogno di quel campo. Per esempio, il dipendente deve avere il matricola e quindi ho selezionato "dipendente" e il campo "matricola" è attivato e così funziona perfettamente facendo function Controllo(), MA quando faccio il selezione "consulente" o "fornitore" o "cliente" non avrà bisogno il numero di matricola e come si fa a fare disattivare il campo "matricola" e il controllo capisca che tutte le selezioni tranne "dipendente" non avrà bisogno il campo "matricola".
    Mi sono spiegato bene? allora lascio il codice e spero che mi aiutate come sempre
    Buona giornata

    <script language="javascript">
    <!--


    function Controlla() {
    // Variabili associate ai campi del modulo
    var matricola = document.insert.matricola.value;
    var cognome = document.insert.cognome.value;
    var nome = document.insert.nome.value

    //Effettua il controllo sul campo NOME
    if ((nome == "") || (nome == "undefined")) {
    alert("Il campo Nome è obbligatorio.");
    document.insert.nome.focus();
    return false;
    }
    //Effettua il controllo sul campo COGNOME
    else if ((cognome == "") || (cognome == "undefined")) {
    alert("Il campo Cognome è obbligatorio.");
    document.insert.cognome.focus();
    return false;
    }

    //Effettua il controllo sul campo MATRICOLA

    if ((isNaN(matricola)) || (matricola == "") || (matricola == "undefined")) {
    alert("Il campo Matricola è numerico ed obbligatorio.");
    document.insert.matricola.value = "";
    document.insert.matricola.focus();
    return false;
    }
    //INVIA IL MODULO
    else {
    document.insert.submit(confirm('Sicuro di assegnare?'));
    }
    }
    //-->
    </script>

    QUESTO CODICE VA BENONE, ma quando il selezione è cliente o consulente o fornitore e ho provato a modificare e non sono mai riuscito ed ecco:

    <script language="javascript">
    <!--
    function Controlla() {
    // Variabili associate ai campi del modulo
    var matricola = document.insert.matricola.value;
    var cognome = document.insert.cognome.value;
    var nome = document.insert.nome.value

    //Effettua il controllo sul campo NOME
    if ((nome == "") || (nome == "undefined")) {
    alert("Il campo Nome è obbligatorio.");
    document.insert.nome.focus();
    return false;
    }
    //Effettua il controllo sul campo COGNOME
    else if ((cognome == "") || (cognome == "undefined")) {
    alert("Il campo Cognome è obbligatorio.");
    document.insert.cognome.focus();
    return false;
    }

    //Effettua il controllo sul campo MATRICOLA
    else if ((document.insert.tipologia.value == 1) {
    document.insert.matricola.disabled=False;
    //dipende dal tipo di input se è una input non so se hai bisogno di disabled...ma penso che sia una input text
    return false;
    }
    else {
    document.insert.matricola.value="";
    document.insert.matricola.disabled=True;
    return false;
    }

    if ((isNaN(matricola)) || (matricola == "") || (matricola == "undefined")) {
    alert("Il campo Matricola numerico ed obbligatorio.");
    document.insert.matricola.value = "";
    document.insert.matricola.focus();
    return false;
    }
    //INVIA IL MODULO
    else {
    document.insert.submit(confirm('Sicuro di assegnare?'));
    }
    }
    //-->
    </script>

    Grazie
    ..:: GSFLASH ::..
    HTTP://WWW.GSFLASH.IT
    MCTS - ACP - OCP - ECDL
    Ubuntu 7.10/OpenSuse 10.3/Vista Premium/MacOSX Leopard
    My authentic japanese name is 薗田Sonoda (garden field) 大河 Taiga (big river)

  2. #2
    ma nessuno mi risponde?
    ..:: GSFLASH ::..
    HTTP://WWW.GSFLASH.IT
    MCTS - ACP - OCP - ECDL
    Ubuntu 7.10/OpenSuse 10.3/Vista Premium/MacOSX Leopard
    My authentic japanese name is 薗田Sonoda (garden field) 大河 Taiga (big river)

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    In quindici minuti

    Armati di pazienza e sfrutta il tempo per rileggerti il regolamento

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  4. #4
    ma se nessuno hanno capito e basta che mi chiedano, perchè non è colpa mia che non scrivo bene l'italiano per causa della mia sordità..... no?
    Comunque penso che nella regola dicendo che ognuno debba avere pazienza, giusto?
    Va bè.... già da un pò dovevo consegnare il progetto....
    Grazie e vi aspetto
    ..:: GSFLASH ::..
    HTTP://WWW.GSFLASH.IT
    MCTS - ACP - OCP - ECDL
    Ubuntu 7.10/OpenSuse 10.3/Vista Premium/MacOSX Leopard
    My authentic japanese name is 薗田Sonoda (garden field) 大河 Taiga (big river)

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao gsflash,

    non mi è tanto chiaro il problema... però se posti anche il form magari si capisce meglio

  6. #6
    ecco il form

    <form METHOD="POST" ACTION="<%=MM_editAction%>" name="insert" id="insert">
    <input name="utente" type="hidden" id="utente" value="<%=(utente.Fields.Item("Cogn").Value)%>">
    <table width="450" border="0" align="center" cellpadding="0" cellspacing="0">

    <tr>
    <td>[img]immagini/spacer.gif[/img]</td>
    <td>[img]immagini/spacer.gif[/img]</td>
    </tr>
    <tr>
    <td>[img]immagini/assegna_r1_c1.jpg[/img]</td>
    <td>[img]immagini/spacer.gif[/img]</td>
    </tr>
    <tr>
    <td valign="top" bgcolor="#003366"><div align="left"></div>
    <table width="263" border="0" align="center">
    <tr>
    <td colspan="2"><div align="right">matricola:</div></td>
    <td width="167"><input name="matricola" type="text" id="matricola" size="10" maxlength="4"></td>
    </tr>
    <tr>
    <td colspan="2"><div align="right">cognome:</div></td>
    <td><input name="cognome" type="text" id="cognome" size="20" maxlength="20"></td>
    </tr>
    <tr>
    <td colspan="2"><div align="right">nome:</div></td>
    <td><input name="nome" type="text" id="nome" size="20" maxlength="20"></td>
    </tr>
    <tr>
    <td colspan="2"><div align="right">num.badge:</div></td>
    <td>
    <div align="left">
    <tr>
    <td width="76"><div align="right">tipo:</div></td>
    <td colspan="2">
    <div align="left">
    <select name="tipologia" id="tipologia">
    <option value="1">Dipendente</option>
    <option value="2">Consulente</option>
    <option value="3">Fornitore</option>
    <option value="4">Cliente</option>
    </select>
    </div></td></tr>
    <tr>
    <td><div align="right">note:</div></td>
    <td colspan="2"><div align="center">
    <textarea name="note" cols="25" id="note"></textarea>
    ..:: GSFLASH ::..
    HTTP://WWW.GSFLASH.IT
    MCTS - ACP - OCP - ECDL
    Ubuntu 7.10/OpenSuse 10.3/Vista Premium/MacOSX Leopard
    My authentic japanese name is 薗田Sonoda (garden field) 大河 Taiga (big river)

  7. #7
    scusa ho messo il form e non è chiaro lo stesso?
    ..:: GSFLASH ::..
    HTTP://WWW.GSFLASH.IT
    MCTS - ACP - OCP - ECDL
    Ubuntu 7.10/OpenSuse 10.3/Vista Premium/MacOSX Leopard
    My authentic japanese name is 薗田Sonoda (garden field) 大河 Taiga (big river)

  8. #8
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    scusa te... ma ogni tanto devo anche lavorere

    praticamente se è selezionato dipendente bisogna controllare che ci sia (e sia numerica) la matricola... altrimenti la matricola non deve essere inserita. Giusto?
    Se è così potresti abilare o meno il text a seconda della selezione agendo sull'onchange della select
    codice:
    <select name="tipologia" id="tipologia" onchange="if(this.selectedIndex==0){this.form.matricola.disabled=false}else{this.form.matricola.value='';this.form.matricola.disabled=true}">
    e la funzione Controlla così
    codice:
    function Controlla() { 
      // Variabili associate ai campi del modulo 
      var matricola = document.insert.matricola.value; 
      var cognome = document.insert.cognome.value; 
      var nome = document.insert.nome.value 
    
      //Effettua il controllo sul campo NOME 
      if ((nome == "") || (nome == "undefined")) { 
        alert("Il campo Nome è obbligatorio."); 
        document.insert.nome.focus(); 
        return false; 
      } 
      //Effettua il controllo sul campo COGNOME 
      else if ((cognome == "") || (cognome == "undefined")) { 
        alert("Il campo Cognome è obbligatorio."); 
        document.insert.cognome.focus(); 
        return false; 
      } 
    
      //Effettua il controllo sul campo MATRICOLA 
      else if ((document.insert.tipologia.selectedIndex==0)) { 
        if ((isNaN(matricola)) || (matricola == "") || (matricola == "undefined")) { 
          alert("Il campo Matricola numerico ed obbligatorio."); 
          document.insert.matricola.value = ""; 
          document.insert.matricola.focus(); 
          return false; 
        } 
      }
      //INVIA IL MODULO 
      if(confirm('Sicuro di assegnare?'))document.insert.submit(); 
    }
    io ho usato il selectedIndex che indica quale indice delle option è stato selezionato (Dipendente è l'indice 0)
    per sapere il valore della option selezionata puoi usare questa sintassi
    codice:
    document.NomeForm.NomeSelect.options[document.NomeForm.NomeSelect.selectedIndex].value

  9. #9
    SEI UN MITO!

    Scusami molto di aver disturbato perchè da un pò che sono stato assente nell'uffici per problemi familiari perchè ho dovuto occuparmene ad aiutare la mia amata al tribunale e i dirigenti stavano già aspettando il mio progetto che doveva essere già consegnato da un pò, purtroppo nel lavoro non interessa i problemi di ogni dipendente, perchè tutti abbiamo dei problemi e sarebbe difficile di non coinvolgere i problemi nell'ufficio.
    Ora capisco il selectindex ero un pò confuso sull'if ed ora è tutto chiaro e conservo questo per non si sa mai in avanti e potrei fare una ripassata , sei proprio un mito! e Ti ringrazio moltissimo!!!!!
    Gabriele
    ..:: GSFLASH ::..
    HTTP://WWW.GSFLASH.IT
    MCTS - ACP - OCP - ECDL
    Ubuntu 7.10/OpenSuse 10.3/Vista Premium/MacOSX Leopard
    My authentic japanese name is 薗田Sonoda (garden field) 大河 Taiga (big river)

  10. #10
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    ma quale mito?
    se ce se po' aiuta' ce se aiuta no?















    p.s.
    selectedIndex e non selectindex

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.