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

    Ricavare nome variabile che chiama lo script.

    Salve a tutti, avrei uno strano problema da porvi. Non so se è capitato mai a qualcuno di voi ma è da giorni che cerco di risolverlo tra grattacapi e ricerche.

    In poche parole ho una pagina scritta in HTML/PHP/JAVASCRIPT nella quale far stampare una tabella di tante righe quanti sono gli elementi di una tabella di un DB. Accanto ad ogni elemento ci sarà una Textbox con un nome a sua volta differente del tipo Testo[i] (in HTML/PHP: ... name='Testo[".$i."]'... ). Ora ho implementato una funzione in Javascript che, al SetFocus su un TextBox mi faccia scomparire l'1 (che è di default), per permettere all'utente di inserire un valore senza " l'impiccio " di dover cancellare il valore giù impostato.
    Bene, questo funziona solo per una variabile ben definita che io chiamo TESTO. Tutti gli altri Textbox avranno un nome differente (Testo[0], Testo[1], ... ,Testo[n]) perciò mi piacerebbe sapere qual'è la funzione che mi permette di reperire il nome della variabile che richiama lo script.

    Non credo di dovermi creare uno script per ogni nome di variabile...

    Ecco il codice (ho eliminato la parte PHP per una più facile esecuzione da parte vostra):
    (Il tutto deve funzionare come nell'ultimo textbox)
    <html>
    <head>
    <title>E-Commerce </title>
    </head>
    <script language="Javascript">
    function Pulisci(){
    if(document.Mioform.TESTO.value=="1"|| document.Mioform.TESTO.value=="" || document.Mioform.TESTO.value=="0")
    document.Mioform.TESTO.value="";
    return;
    }
    function Riempi(){
    if(document.Mioform.TESTO.value=="1" || document.Mioform.TESTO.value=="" || document.Mioform.TESTO.value=="0")
    document.Mioform.TESTO.value="1";
    return;
    }
    </script>
    <body>
    << E-Commerce >>

    <CENTER><h1>Carrello elettronico </h1>

    <form name='Mioform' method='POST' action='#'>
    <TABLE BORDER="1">
    <TR><TD>ID</TD><TD>LIBRO</TD><TD>SCELTA</TD><TD>QUANTITA'</TD></TR>

    <TR><TD>1</TD><TD>Informatica</TD><TD><input type='checkbox' name='Valore[0]'></TD><TD><input type='text' name='Testo[0]' OnFocus='return Pulisci();' OnBlur='return Riempi();' value='1'></TD></TR>

    <TR><TD>2</TD><TD>Matematica</TD><TD><input type='checkbox' name='Valore[1]'></TD><TD><input type='text' name='Testo[1]' OnFocus='return Pulisci();' OnBlur='return Riempi();' value='1'></TD></TR>

    <TR><TD>3</TD><TD>Elettronica</TD><TD><input type='checkbox' name='Valore[2]'></TD><TD><input type='text' name='Testo[2]' OnFocus='return Pulisci();' OnBlur='return Riempi();' value='1'></TD></TR>

    <TR><TD>4</TD><TD>Sistemi</TD><TD><input type='checkbox' name='Valore[3]'></TD><TD><input type='text' name='Testo[3]' OnFocus='return Pulisci();' OnBlur='return Riempi();' value='1'></TD></TR>

    <TR><TD>5</TD><TD>Storia</TD><TD><input type='checkbox' name='Valore[4]'></TD><TD><input type='text' name='Testo[4]' OnFocus='return Pulisci();' OnBlur='return Riempi();' value='1'></TD></TR>

    <TR><TD>6</TD><TD>Italiano</TD><TD><input type='checkbox' name='Valore[5]'></TD><TD><input type='text' name='Testo[5]' OnFocus='return Pulisci();' OnBlur='return Riempi();' value='1'></TD></TR>

    </TABLE>
    <input type='text' name='TESTO' value='1' onfocus='return Pulisci();' onblur='return Riempi();'>
    </form>
    </body>
    </html>

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non ho capito tanto della tua spiegazione, e' solo un'intuizione...
    Accertato che "una variabile" non puo' richiamare uno script , a mio parere sbagli impostazione del problema... dovrebbe essere sufficiente far agire la funzione sull'oggetto che la richiama:
    codice:
    < ... onfocus="Pulisci(this)" ... >
    <script>
    function Pulisci(obj) {
    if(obj.value=="1"|| obj.value=="" || obj.value=="0")
    obj.value="";	
    return;
    }
    ...
    </script>
    EDIT: ho riletto e confermo... forse non ho capito
    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

  3. #3
    Ti ringrazio, mi hai risolto un problema.

    Mi volevo correggere, avrei dovuto chiedere dell'evento che veniva generato dal focus sulla textbox.

    Comunque, mi chiedevo quale altra sintassi può essere utilizzata in
    codice:
    Pulisci(this)
    e se ci fosse qualche differenza tra OnFocus='Pulisci(this)' e 'return Pulisci(this);' .

    Grazie.

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da Anaconda25
    Ti ringrazio, mi hai risolto un problema.

    Mi volevo correggere, avrei dovuto chiedere dell'evento che veniva generato dal focus sulla textbox.

    Comunque, mi chiedevo quale altra sintassi può essere utilizzata in
    codice:
    Pulisci(this)
    e se ci fosse qualche differenza tra OnFocus='Pulisci(this)' e 'return Pulisci(this);' .

    Grazie.
    La domanda sulla sintassi alternativa ha un senso che non colgo (nel senso che non ha alcun senso).
    La differenza sta nel vantaggio che avresta dal trattare un eventuale valore di ritorno della funzione... in ogni caso la esegue, ed in altri eventi puo' esserci pure un vantaggio... per esempio ritornare un valore false interrompe la catena degli eventi legata all'onclick.

    Insomma... ripassare un tantino la teoria forse aiuta, ma non chiedere un corso dagli utenti del forum il suo scopo e' un altro
    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

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.