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

Discussione: tag input e javascript

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    79

    tag input e javascript

    Ciao, ho la seguente funzione javascript che "dovrebbe controllare" il valore inserito in un campo di testo:

    codice:
    function check_create() {
    
       var type = alert(document.getElementById('type'));
       alert('Questo è il valore:' + type);
    
    }
    ma la variabile type è undefined, nonostante inserisco il teso nella casella, dov'è l'errore?

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    79
    Questo è il form da dove viene chiamata:

    codice:
            <form action="/cgi-bin/create.cgi" method="POST" onsubmit="return check_create()">
              <fieldset>
                Type<input id="type" class="intext" type="text" name="type" size="20" />
    
                Name<input id="name" class="intext" type="text" name="name" size="20" />
    
                <input type="submit" value="Create" />
              </fieldset>
            </form>
    Alla pressione del tasto "Create", voglio solo che appaia la finestra di alert con il valore del campo di input con id="type".

    PS = sto utilizzando il browser firefox 4.0 beta 11

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    alert(document.getElementById('type').value);

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Ma se uno deve usare proprio "type" per un ID ed un nome di variabile...
    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

  6. #6
    Guarda come ti dice br1 è una pessima idea usare come id 'type'. Essendo la string type anche l'identificativo di un attributo standard dei tag input (<input type=...) rischi prima o poi di trovarti con qualche browser che non identifica il namespace giusto (cioè che preleva il type non come id ma lo va a cercare prima come attributo di un tag).

    Ovvio che i browser non dovrebbero fare così, ma non sempre i b rowser fanno quello che dovrebbero. Dagli un altro nome ,o che so agiungici un numero dopo 'type1', e anche la variabile meglio non chiamarla type, per gli stessi motivi.

    per il resto come ti dice vindav, devi appenderci
    .value

    ps la sequenza
    var type = alert(document.getElementById('type'));
    alert('Questo è il valore:' + type);
    non ha senso: se dici che type è uguale ad un alert, è uguale ad un alert.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    79
    Ok funziona, ora estendo l'esempio, però funziona solo per il primo alert, la funzione è:

    codice:
    function check_create() {
    
       var tag = document.getElementById('tag').value;
       alert(tag);
       var pname = document.getElementById('project').value;
       alert(pname);
       var lname = document.getElementById('language').value;
       alert(lname);
    
    }
    mentre il form ora è il seguente:

    codice:
            <form action="/cgi-bin/createproj.cgi" method="POST" onsubmit="return check_create()">
              <fieldset>
              <legend>Create</legend>
                <input id="tag" class="intext" type="text" name="tag" size="20" />
                <input id="project" class="intext" type="text" name="project" size="20" />
                <input id="language" class="intext" type="text" name="language" size="20" />
                <input type="submit" value="Create" />
              </fieldset>
            </form>
    La prima finestra di alert restituisce il valore corretto, mentre le altre 2 non restituiscono nulla. Dov'è il problema?

  8. #8
    beh intanto metti un value dentro ogni input, anche vuoto
    value=""

    poi la funzione deve ritornare qualcosa, per quello che riguarda il submit:

    return true

    ps senza un value di default è possibile che alcuni browser interpretino la proprietà value come inesistente e diano errore, non essendoci un value di default nei tag, mentre lo potrebbero legittimamente interpretare come assegnato nel momento in cui dentro il tag l'utente scrive qualcosa (e in tal caso, solo per quel tag...)

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    79
    Allora il form é:
    codice:
            <form action="/cgi-bin/createproj.cgi" method="POST" onsubmit="return check_create()">
              <fieldset>
              <legend>Create</legend>
                <input id="tag" class="intext" type="text" name="tag" value="" size="20" />
                <input id="project" class="intext" type="text" name="project" value="" size="20" />
                <input id="language" class="intext" type="text" name="language" value="" size="20" />
                <input type="submit" value="Create" />
              </fieldset>
            </form>
    mentre la funzione è:

    codice:
    function check_create() {
    
       var tag = document.getElementById('tag').value;
       alert(tag);
       var pname = document.getElementById('project').value;
       alert(pname);
       var lname = document.getElementById('language').value;
       alert(lname);
     
      return true;
    
    }
    ma viene ritornato del testo solo riguardo alla prima casella di input, cioè solo il primo alert ritorna del testo, gli altri due rimangono vuoti.

  10. #10
    Qui funziona benissimo (IE e FF).
    Poi certo che se dentro i tag input non scrivi qualcosa, l'alert ti ritorna vuoto. Cioè non è chiaro quale sarebbe il problema.

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.