Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Comprimere funzione

  1. #1
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126

    Comprimere funzione

    Ciao, c'è un modo per comprimere questa funzione visto che i campi di input sono molti?
    codice:
    function fun_sblocca(puls){
      var nome = document.form1.nome.disabled;
      var cognome=document.form1.cognome.disabled;
      if (nome == true && cognome==true) {
    	document.form1.nome.disabled=false;
    	document.form1.cognome.disabled=false;
    	puls.value="       Blocca  »     ";
      } else { 
    	document.form1.nome.disabled=true;
    	document.form1.cognome.disabled=true;
    	puls.value="       Sblocca  »     ";
      }
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non capisco a cosa servano le definizioni delle due variabili iniziali.

    Immagino inoltre che il campo passato sia il pulsante che serve per abilitare/disabilitare, e che tale campo sia nello stesso form.

    Quindi io ti proporrei di modificare cosi`:
    codice:
    function fun_sblocca(puls){
      if (puls.value.search(/Sblocca/i) > 0) {
    	puls.form.nome.disabled=false;
    	puls.form.cognome.disabled=false;
    	puls.value="       Blocca  »     ";
      } else { 
    	puls.form.nome.disabled=true;
    	puls.form.cognome.disabled=true;
    	puls.value="       Sblocca  »     ";
      }
    }
    Per ridurre ulteriormente occorre sapere altre info rigurado al form e a cosa altro deve fare (ma credo che questo sia comunque il minimo).

    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 L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    si l'argomento passato è il pulsante che abilita e disabilita i campi di testo e non si trova nello stesso form.
    Praticamente io ho vari campi nel form e con questo pulsante (che non si trova all'interno del form) li devo abilitare e disabilitare.. semplice no? (per me no )
    inoltre poi con il pulsante submit devo controllare che tutti i campi siano abilitati altrimenti devo far apparire un alert, ma questo l'avrei visto dopo. Le variabili iniziali le ho messe per specificare i nomi dei vari campi di input altrimenti come faccio?
    mi puoi aiutare?

  4. #4
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    cmq ho modificato la tua funzione e adeso funziona:
    codice:
    <script language="JavaScript">
    
    function fun_sblocca(puls){
      if (puls.value.search(/Sblocca/i) > 0) {
    	document.form1.nome.disabled=false;
    	document.form1.cognome.disabled=false;
    	puls.value="       Blocca  »     ";
      } else { 
    	document.form1.nome.disabled=true;
    	document.form1.cognome.disabled=true;
    	puls.value="       Sblocca  »     ";
      }
    }
    
    
    </script>
    Però io vorrei evitare di scrivere document.form1 etc.. per tutti i campi

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Puoi assegnare una variabile a document.form1, ma comunque devi dire dentro la funzione a che oggetto ti riferisci:
    codice:
    function fun_sblocca(puls){
      var f1 = document.form1;
      if (puls.value.search(/Sblocca/i) > 0) {
    	f1.nome.disabled=false;
    	f1.cognome.disabled=false;
    	puls.value="       Blocca  »     ";
      } else { 
    	f1.nome.disabled=true;
    	f1.cognome.disabled=true;
    	puls.value="       Sblocca  »     ";
      }
    }
    Oppure puoi passare il form nella chiamata:

    <input name="...." onClick="fun_sblocca(this,document.form1);">

    e allora la funzione diventa:
    codice:
    function fun_sblocca(puls, f1){
      if (puls.value.search(/Sblocca/i) > 0) {
    	f1.nome.disabled=false;
    	f1.cognome.disabled=false;
    	puls.value="       Blocca  »     ";
      } else { 
    	f1.nome.disabled=true;
    	f1.cognome.disabled=true;
    	puls.value="       Sblocca  »     ";
      }
    }
    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    vabbè allora faccio così:
    codice:
    function fun_sblocca(puls){
      if (puls.value.search(/Sblocca/i) > 0) {
    	document.form1.nome.disabled=false;
    	document.form1.cognome.disabled=false;
    	document.form1.ragsoc.disabled=false;
    	document.form1.gg.disabled=false;
    	document.form1.mm.disabled=false;
    	document.form1.aa.disabled=false;
    	document.form1.piva.disabled=false;
    	document.form1.prof.disabled=false;
    	document.form1.statociv.disabled=false;
    	document.form1.indresid.disabled=false;
    	document.form1.citta.disabled=false;
    	document.form1.prov.disabled=false;
    	document.form1.stato.disabled=false;
    	document.form1.tel.disabled=false;
    	document.form1.email.disabled=false;
    	document.form1.tipologia.disabled=false;
    	document.form1.dom.disabled=false;
    	document.form1.risp.disabled=false;
    	document.form1.liv.disabled=false;
    	document.form1.reg.disabled=false;
    	document.form1.usn.disabled=false;
    	document.form1.pw.disabled=false;
    	puls.value="       Blocca  »     ";
      } else { 
    		document.form1.nome.disabled=true;
    	document.form1.cognome.disabled=true;
    	document.form1.ragsoc.disabled=true;
    	document.form1.gg.disabled=true;
    	document.form1.mm.disabled=true;
    	document.form1.aa.disabled=true;
    	document.form1.piva.disabled=true;
    	document.form1.prof.disabled=true;
    	document.form1.statociv.disabled=true;
    	document.form1.indresid.disabled=true;
    	document.form1.citta.disabled=true;
    	document.form1.prov.disabled=true;
    	document.form1.stato.disabled=true;
    	document.form1.tel.disabled=true;
    	document.form1.email.disabled=true;
    	document.form1.tipologia.disabled=true;
    	document.form1.dom.disabled=true;
    	document.form1.risp.disabled=true;
    	document.form1.liv.disabled=true;
    	document.form1.reg.disabled=true;
    	document.form1.usn.disabled=true;
    	document.form1.pw.disabled=true;
    	puls.value="       Sblocca  »     ";
      }
    }

  7. #7
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    aa.. senti nel controllare se un campo è abilitato o dsabilitato ho riscontrato che se è disabilitato allora mi appare il messaggio di alert ma se è abilitato non succede nulla.. o meglio non mi invia il form
    codice:
    function controller(){
    if(document.form1.nome.disabled){
    alert("Attenzione");
    }
    return false;
    }
    codice:
    <form name="form1" method="post" action="mod.asp" onSubmit="return controller();">

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ma devi disabilitare tutti i campi? Potresti usare un loop.

    Un campo disabilitato non viene spedito al server. Forse vuoi invece il readonly (con la stessa sintassi).

    Prova a vedere come va questo codice:

    codice:
    function fun_sblocca(puls){
      var azione=true;
      if (puls.value.search(/Sblocca/i) > 0) azione=false;
    
      var f1 = document.form1;
      for (var i=0; i<f1.length; i++) {
        f1.elements[i].disabled = azione;
      }
    }
    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    appunto io voglio controllare che tutti i campi siano sbloccati.. come faccio a controllare che questi campi siano sbloccati?

  10. #10
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    nessuno mi risponde ?

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.