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

    contenuto di un campo di testo

    Ciao a tutti!
    Sto imparando il javascript, ora, per un lavoro che voglio fare mi serve sapere il valore di un campo input di testo, so che la cosa sembrerà banale, ma io non so proprio come si faccia, ho fatto diversi tentativi, ma nulla, in particolare ho provato con questo codice:
    codice:
    <form id="form" name="form" onsubmit="alert(h);">
    <input type="text" name="input" id="input"/>
    </form>
    
    <SCRIPT type="text/javascript">
    var h=document.form.input.value;
    </SCRIPT>
    In teoria dovrebbe visualizzarmi un alert con il valore del campo di testo quando il form viene spedito, invece l'alert è vuoto, non so proprio come fare...
    Qualcuno sa dirmi dove sbaglio?
    Grazie in anticipo!

  2. #2
    Utente bannato
    Registrato dal
    Apr 2009
    Messaggi
    530

    In realtà, funziona bene ...

    Questo però già funziona un po' più come te lo aspetti:
    codice:
    <form id="form" name="form" onsubmit="alert(h);">
    <input value="enzo" type="text" name="input" id="input" />
    <input type="submit" />
    </form>
    
    <SCRIPT type="text/javascript">
    var h=document.form.input.value;
    </SCRIPT>
    e questo ancor più funziona come te lo aspetti:
    codice:
    <form id="form" name="form" onsubmit="alert(document.form.input.value);">
    <input value="enzo" type="text" name="input" id="input" />
    <input type="submit" />
    </form>
    e a dire la verità, anche il tuo funziona: assegna un Valore alla variabile h (quando?) nel momento che la pagina viene caricata/analizzata dal Browser; e il Valore di VALUE di quella textbox è vuoto "alla nascita".
    Rilevavi l' equivalente di value="" e quello rimaneva per h

    Per quanto possiamo pensare di JavaScript come un linguaggio dinamico, document.form.input.value non ti vuole tenere in costante e vivo contatto con quell' Attributo, ma lo "fotografa" una-tantum quando viene lanciato; o ... ri-lanciato. Sulla base di quest' ultima osservazione, potrei anche conformare il tuo modello alle tue aspettative, con l' ausilio di un Timer:
    codice:
    <form id="form" name="form" onsubmit="alert(h);">
    <input type="text" name="input" id="input" />
    <input type="submit" />
    </form>
    
    <SCRIPT type="text/javascript">
    setInterval('var h=document.form.input.value;', 100);
    </SCRIPT>
    forse in miglior sintassi così:
    codice:
    <SCRIPT type="text/javascript">
    var h;  //dichiarazione di variabile indefinita
    setInterval('h=document.form.input.value;', 100);
    </SCRIPT>
    Il Valore di VALUE viene verificato ogni decimo di secondo, ed assegnato come Valore alla var h
    In JavaScript possiamo avere due temporizzatori: setTimeout e setInterval che si tarano in millisecondi (3000 = 3 sec.).

  3. #3
    Grazie mille! Ora che ci penso la cosa non era poi così complicata, già che ci sono n approfitto per farti un'altra domanda, infatti a ma interessa interagire, non con un text input(quella era solo una prova), ma con una textarea, dovrei prenderne in considerazione solo una riga, esiste una funzione simile a "explode" del PHP(che divide una stringa in base ad un carattere separatore)?
    Grazie ancora!!

  4. #4
    Ho trovato! è la funzione spilt, però ora ho scritto utilizzando quella funzione questo codice, che però non funziona:
    codice:
    <HTML>
    <FORM name="form">
    <TEXTAREA name="area">
    </TEXTAREA>
    </FORM>
    <SCRIPT type="text/javascript"> 
    setInterval('var lines =document.form.area.value.split("\n");', 100);
    document.form.area.value+= "hello world!";
    setInterval('var variabile = lines[0];', 100);
    document.form.area.value+= variabile;
    </SCRIPT>
    </HTML>
    Per prima cosa dovrebbe creare un array "lines" con tutte le righe della textarea, poi dovrebbe scrivere nella textarea "hello world!" e poi dovrebbe creare una variabile "variabile" contenente la prima riga della textarea e scriverla, quindi io mi aspettavo di trovare nella textarea qualcosa come "hello world!hello world!hello world!hello world!hello world!hello world!" fino ala fine della riga, invece nella textarea viene scritto solo "hello world!" e nient'altro... Qualcuno sa dirmi dove sbaglio?
    Grazie mille in anticipo!

  5. #5

  6. #6
    Nessuno è in grado di aiutarmi(up)?

  7. #7

  8. #8
    UPUPUPUP...UP.......UP....................up.....u p

  9. #9
    Utente bannato
    Registrato dal
    Apr 2009
    Messaggi
    530
    Originariamente inviato da quit10
    ... scriverla,
    In realtà quello che avviene, e che scrive, è questo:
    codice:
    <HTML>
    <FORM name="form">
    <TEXTAREA name="area">
    </TEXTAREA>
    </FORM>
    
    <SCRIPT type="text/javascript"> 
     document.form.area.value+= "hello world!";
     document.form.area.value+= variabile; //ma non la trova ...
    </SCRIPT>
    
    </HTML>
    Poi, dopo 100 milli-sec. e solo allora, si eseguono le istruzioni contenute nei Timer; ma nessuna riscrive alcunché: la prima, aggiorna una variabile var lines ridichiarandola ogni 100 ms, la seconda fa altrettanto con la var variabile peraltro richiamando l' articolo di un Array che non esiste.

    Ma le due istruzioni che dovrebbero scrivere:
    document.form.area.value+= "hello world!";
    document.form.area.value+= variabile;
    non vengono ripetute.

  10. #10
    Grazie, ho capito!

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.