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

    nomi dei campi "dinamici"

    Ciao a tutti, ho un problema da sottoporvi.

    data questa funzione

    <script>
    <!--
    function abilita()
    {

    if(document.infoTools.attiva_1.checked==true){
    document.infoTools.livello_1.disabled = false;
    document.infoTools.uso_1.disabled = false;
    }
    else{
    document.infoTools.livello_1.disabled = true;
    document.infoTools.uso_1.disabled = true;
    }
    }

    //-->
    </script>


    che funziona perfettamente

    avrei la necessità di modificarla in modo da rendere dinamici gli "_1" che seguono i nomi dei campi ed avevo pensasto di fare così

    <script>
    <!--
    function abilita(item)
    {
    attiva = "document.infoTools.attiva_" + item
    livello= "document.infoTools.livello_" + item
    uso = "document.infoTools.uso_" + item


    if(attiva.checked==true){
    livello.disabled = false;
    uso.disabled = false;
    }
    else{
    livello.disabled = true;
    uso.disabled = true;
    }
    }

    //-->
    </script>

    che invece, pur non fornendo nessun errore, non fa niente.

    in questo modo estraendo i dati da un DB con una ricorsione e passando come argomento della funzione il progressivo di estrazione credevo di poter utilizzare una sola funzione per tutto il form (l'alternativa è scrivere una funzione per ogni record estratto ma non mi sembra molto elegante).

    grazie di esistere

  2. #2
    Utente di HTML.it L'avatar di ilgiovo
    Registrato dal
    Aug 2001
    Messaggi
    518
    prova a smanettare con la funzione eval(stringa) che prende invece della stringa il valore della stessa! tipo

    .....
    if(eval(attiva).checked==true){
    ....
    Cacca!

  3. #3
    niente da fare...

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    eval() e` funzione deprecata (dove non implementata) ....

    Per darti una risposta specifica, occorre sapere cosa sono gli oggetti usati:
    infoTools
    attiva_1

    Se sono form e campi si puo` fare una cosa crossbrowser, altrimenti si puo` fare una cosa per brwser recenti (da IE5.5 e NS6 in poi)

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    ciao

    allora, infoTools è il nome del Form e i campi sono attiva_1 un checkbox e gli altri 2 sono select box

    grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    206
    potresti ulizzare:

    i = 1;
    check = document.getElementById("attiva_" + i);
    if(check.checked)..........

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Dentro un form, e` definito il vettore elements[] di tutti i campi in esso contenuti.

    Il bello di questo e` che come argomento di elements[] viene accettato anche il nome (una stringa), che puo` essere montata al momento.

    codice:
    function abilita(item) {
      attiva = document.infoTools.elements["attiva_" + item];
      livello = document.infoTools.elements["livello_" + item];
      uso = document.infoTools.elements["uso_" + item];
    
    
      if(attiva.checked) {
        livello.disabled = false;
        uso.disabled = false;
      } else {
        livello.disabled = true;
        uso.disabled = true;
      }
    }
    Nota: la varibaile item deve essere una stringa che contiene la parte di nome che ti interessa modificare.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Utente di HTML.it L'avatar di ilgiovo
    Registrato dal
    Aug 2001
    Messaggi
    518
    Originariamente inviato da Mich_
    eval() e` funzione deprecata (dove non implementata) ....


    MA STAI SCHERZANDO??? io la uso praticamente ovunque è la miglior funzione che c'è in javascript!!!
    Cacca!

  9. #9
    funziona perfettamente

    grazie Mich_ hai vinto un pupazzetto di peluche a forma di programmatore.

    complimenti per la competenza e ancora grazie

    ciao

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Originariamente inviato da ilgiovo


    MA STAI SCHERZANDO??? io la uso praticamente ovunque è la miglior funzione che c'è in javascript!!!
    Non sto scherzando.
    E` ancora accettata da IE6 e (in parte) da Ns6/7, invece Opera7 e Mozilla non la accettano quando si tratta di valutare oggetti e stringhe assieme (se ho capito giusto).

    Viene onorevolmente sostituita da getElementById()
    getElementByTypeName()...


    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.