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

Discussione: Controllo Input Form

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    46

    Controllo Input Form

    Ciao a tutti!

    Ho un form fatto in questo modo:

    Codice PHP:
    <form method='post' name='cart' action=index.jsp?title=&author=&order=titleDesc onsubmit="return checkform(this);">
    <
    table class='paginated' cellspacing='0' cellpadding='0'>      
    ...      
    <
    tr>         
       <
    th><input type='checkbox' name='books' value='2'/></th>
       <
    td>[i]Trainspotting[/i]</td>
       <
    td>Irvine Welsh</td>
       <
    td>WWNorton Company</td>
       <
    td align='center'>978-0393314809</td>
       <
    td align='center'>1996</td>
       <
    td align='left' class='price'>$ 11.16</td>
       <
    td><input type=text name='2' size=1 value=1>
    </
    tr>     
    <
    tr>
       <
    th><input type='checkbox' name='books' value='3'/></th>
       <
    td>[i]Lords of ChaosThe Bloody Rise of the Satanic Metal Underground[/i]</td>
       <
    td>Michael Moynihan Didrik Soderlind</td>
       <
    td>Feral House</td>
       <
    td align='center'>978-0922915941</td>
       <
    td align='center'>2003</td>
       <
    td align='left' class='price'>$ 12.89</td>
       <
    td><input type=text name='3' size=1 value=1>
    </
    tr>      
    ...  
    </
    table


    <
    input type=submit name="update" value='Update Cart'></p
    vorrei che quando il campo di input denominato '2' è vuoto mi apparisse un pop-up con un messaggio di errore.
    Allora ho fatto questa funzione:

    Codice PHP:
    function checkform (form){          
    ...      
       if (
    form.2.value == ""){         
          
    alert("Controlla la quantità.");         
          
    form.2.focus();         
          return 
    false ;       
       }              
    ...        

    Premetto che controlli di questo tipo ne ho fatti una miriade ed hanno sempre funzionato, ma questa volta no.
    E' per caso dovuto al fatto che chiamo un campo di input con un numero?

    Grazie.

  2. #2
    Si, in effetti utilizzando nel Javascript form.2.value, l'interprete vede il 2 come un numero non come una variabile. Aggiungi anche solo una lettera davanti al nome del campo è dovresti essere a posto

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    46
    Eh si, come dici tu funziona.
    Il problema è che mi serviva proprio chiamare il campo con un numero.

    Non esistono altri modi vero?

    Cmq Grazie.

  4. #4
    Sicuro!

    (colgo l'occasione per convertirti ! ;-P)

    Puoi usare le funzioni x interrogare il DOM

    Codice PHP:
    var form document.getElementsByName('cart')[0];

    var 
    elem2 form.getElementsByName('2')[0];

    var 
    valueOf2 elem2.value

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Originariamente inviato da renganz
    Eh si, come dici tu funziona.
    Il problema è che mi serviva proprio chiamare il campo con un numero.

    Non esistono altri modi vero?

    Cmq Grazie.
    Ti consiglio comunque di non chiamare i campi che inizino con dei numeri almeno fai cosi _1, questo perché potresti avere problemi con dei browser, e fortemente sconsigliato.
    Presumo che il forum sia generato dinamicamente, usi un approccio sbagliato è possibile generare codice valido e cross-browser.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    46
    Allora ho provato ad usare il DOM ma nulla da fare.

    Ho inserito nel tag di input anche l'ID:

    Codice PHP:
    ...
    <
    input type=text name='2' id='_2' size=1 value=1>
    ... 
    e facendo uno script in questo modo:

    Codice PHP:
    function checkform (form){
          if (
    form._2.value == ""){
               
    alert("Quantity is invalid.");
                    
    form._2.focus();
                    return 
    false ;
          }

    le cose funzionano.

    Vorrei però che _2 fosse una variabile, una cosa del genere:

    Codice PHP:
    var "_2"
    ma modificando lo script:

    Codice PHP:
    form.i.value == "" 
    torna a non funzionare.

    Ho provato a fare anche così ma nulla:

    Codice PHP:
    function checkform (form){

           var 
    elem2 form.getElementsById('_2');
          
           if (
    form.elem2.value == ""){
               
    alert("Quantity is invalid.");
                    
    form.elem2.focus();
                    return 
    false ;
           }
          


  7. #7
    no, dunque, tu non hai ben chiaro che cosa stai usando:

    document.form.2.value si traduce per il browser:

    nel documento la form il cui nome è = a "form", il campo il cui nome è = "2", ottieni il valore.

    questo interroga sui nomi.

    Usando le funzioni DOM non hai problemi di dover seguire il path (form.campo.value), ma hai già l'elemento sul quale leggi la proprietà value

    Nel tuo caso hai:

    var elem2 = form.getElementsById('_2');
    elem2.value

    questo perché in elem2 c'è un oggetto Element che corrisponde al tuo

    <input type=text name='2' id='_2' size=1 value=1>

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    46
    Originariamente inviato da artorius
    no, dunque, tu non hai ben chiaro che cosa stai usando:

    document.form.2.value si traduce per il browser:

    nel documento la form il cui nome è = a "form", il campo il cui nome è = "2", ottieni il valore.

    questo interroga sui nomi.

    Usando le funzioni DOM non hai problemi di dover seguire il path (form.campo.value), ma hai già l'elemento sul quale leggi la proprietà value

    Nel tuo caso hai:

    var elem2 = form.getElementsById('_2');
    elem2.value

    questo perché in elem2 c'è un oggetto Element che corrisponde al tuo

    <input type=text name='2' id='_2' size=1 value=1>
    Ho provato a fare così:

    Codice PHP:
    function checkform (form){

           var 
    elem2 form.getElementsById('_2');
          
           if (
    elem2.value == ""){
               
    alert("Quantity is invalid.");
               
    elem2.focus();
               return 
    false ;
           }
          

    ...non funziona.

  9. #9
    Perché la funzione è

    getElementById()

    non
    getElementsById()

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    46
    Niente da fare...neanche così.

    Mi sa che proverò a cercare un'altra soluzione.

    Domanda stupida: non c'è per caso qualche incompatibilità tra DOM e JSP vero?

    Cmq grazie lo stesso!

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.