Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428

    [javascript] utilizzo parametro

    Sera,
    ho un problema con una funzione.
    In pratica non riesco a fargli prendere il parametro che gli passo.
    La funzione è questa:

    <script language=\"JavaScript\">
    <!--
    function setColor(destinazione) {
    var choice;
    choice = document.colorForm.color.selectedIndex;
    switch(choice) {
    case 0: document.getElementById(destinazione).bgColor = \"FFFFFF\"; break;
    case 1: document.getElementById(destinazione).bgColor = \"FF0000\"; break;
    case 2: document.getElementById(destinazione).bgColor = \"0000FF\"; break;

    }
    }
    //-->
    </script>

    se al posto di mettere getElementById(destinazione) metto direttamente l'id dell'oggetto funziona perfettamente...mentre generalizzando il l'id target...nn va...dove sto sbagliando

    grazie
    ciao
    gnegno

  2. #2
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970
    non è ke se passi una stringa devi metterla tra 'virgolette' ??

    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428
    io scrivevo questo...è giusto?
    <select name="color" onchange="setColor("tab1")">

  4. #4
    è sbagliato qui:

    <script language=\"JavaScript\">
    <!--
    function setColor(destinazione) {
    var choice;
    choice = document.colorForm.color.selectedIndex;
    switch(choice) {
    case 0: document.getElementById(destinazione).bgColor = "#FFFFFF"; break;
    case 1: document.getElementById(destinazione).bgColor = "#FF0000"; break;
    case 2: document.getElementById(destinazione).bgColor = "#0000FF"; break;
    default: alert("errore"); break;
    }
    }
    //-->
    </script>
    «Se leggi dimentichi, se vedi capisci, se fai impari» Piaget

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428
    Allora il problema non è quello...il problema persiste!
    Putroppo per esigenze sono costretto a variare un po lo script...però continuo ad avere problemi...allora la parte di script è questa:

    <script language="JavaScript">
    <!--
    function setColor(sorgente,destinazione) {
    var choice;
    choice = document.colorForm.sorgente.selectedIndex;
    switch(choice) {
    case 0: document.getElementById(destinazione).bgColor = "#FFFFFF"; break;
    case 1: document.getElementById(destinazione).bgColor = "#FF0000"; break;
    case 2: document.getElementById(destinazione).bgColor = "#0000FF"; break;
    default: alert("errore"); break;

    }
    }
    //-->
    </script>

    Ho dovuto specificare il select sorgente perchè nel form ne ho 4.
    In questo modo vorrei avere una sola funzione per variare il colore dello sfondo di una tabella per ogni select selezionato...ho 4 select e 4 tabelle

    <select name="color" onchange='setColor("color","tab1")'>
    <option value="#FFFFFF" selected>Bianco</option>
    <option value="#B7B78B" >Default 1</option>
    <option value="#D8D8C4" >Default 2</option>
    </select>
    <table width="82" border="1" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" id="tab1">

    poi passo onchange='setColor("color2","tab2")...etc...etc..

    grazie a tutti
    ciao
    gnegno

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Originariamente inviato da Gnegno
    io scrivevo questo...è giusto?
    <select name="color" onchange="setColor("tab1")">
    Qui c'e` un probelma di virgolette. Quello che intendevi e` questo:
    <select name="color" onchange="setColor('tab1')">
    Che ha tutto un altro significato.

    inoltre l'attributo bgColor non esiste in JS standard. Quello che vuoi si chiama:
    document.getElementById(destinazione).style.backgr oundColor

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

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428
    Allora...ho fatto piccoli passi avanti!
    Lo script con questa dicitura

    choice = document.colorForm.color.selectedIndex;
    switch(choice) {
    case 0: document.getElementById(destinazione).style.backgr oundColor= \"#FFFFFF\"; break;

    dove

    <select name="color" onchange=setColor("color","tab1")>

    e

    <table width="82" border="1" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" id="tab1">

    funziona (anche utilizzando .bgColor)!
    Ora il problema quindi è questo...siccome ho 4 select ho dovuto differenziare i loro nomi
    <select name="color" onchange=setColor("color","tab1")>
    <select name="color1" onchange=setColor("color1","tab2")>
    <select name="color2" onchange=setColor("color2","tab3")>
    <select name="color3" onchange=setColor("color3","tab4")>

    a questo punto vorrei sfruttare la variabile sorgente e il problema si restringe a questa riga

    choice = document.colorForm.sorgente.selectedIndex;

    messo in questo modo non funge...come avviene l'utilizzo della variabile in quelle istruzioni? :master:

    Grazie a tutti
    ciao
    gnegno

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    choice = document.colorForm.elements[sorgente].selectedIndex;

    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

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428
    YESSS
    Finalmente funge!
    Grazie a tutti quanti!
    ciao
    gnegno

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.