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

    Script che si accavallano

    Ciao... domanda in notturna

    Ho questo script:
    Codice PHP:
    function isnum(obj) { if (isNaN(obj.value) || parseInt(obj.value)<|| parseInt(obj.value) > 180)
                        { 
    alert('Please enter numbers only between 1 and 180');
                        
    obj.value="";
                        
    obj.focus();}} 
    Con abbinato questo form:
    Codice PHP:
    <input type="text" id="test" name="test" value="test" size="4" onBlur="isnum(this)"
    Questo è l'ultimo script nella pagina. Ne utilizzo altri 6 nella stessa dove cambiano i limiti dei numeri e conseguentemente il messaggio da mostrare. Ora il problema è che questo ultimo script ha effetto sugli altri 6 che lo precedono. Tutti e 7 i campi seguono il limite 1/180 e mostrano lo stesso testo benchè abbiano sia limiti che testi diversi.

    Immagino che debba agire su onBlur="isnum(this)" e farlo tipo onBlur="isnum(this.gatto)" ma mi perdo. E' la prima volta che uso js.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133

    Re: Script che si accavallano

    Risposta mattutina

    Cosa fa lo script:
    verifica che il valore del input (nel esempio test) sia numerico oppure che non sia più basso di 1 oppure che non sia più alto di 180 se una di queste 3 opzioni/possibilità e valida avvisa e blocca l'operazione.
    Tutti e 7 i campi seguono il limite 1/180 e mostrano lo stesso testo benchè abbiano sia limiti che testi diversi.
    Questa contraddizione non l'ho capita
    Immagino che debba agire su onBlur="isnum(this)" e farlo tipo onBlur="isnum(this.gatto)" ma mi perdo.
    L'immaginazione è una sensazione lontanissima alla programmazione ed è meglio lasciare tutto cosi.
    E' la prima volta che uso js.
    A tal proposito ti consiglio questa ottima guida.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Mi spiego meglio
    Codice PHP:
    function isnum(cane) { if (isNaN(obj.value) || parseInt(obj.value)<|| parseInt(obj.value) > 180)
                        { 
    alert('Please enter numbers only between 1 and 180');
                        
    obj.value="";
                        
    obj.focus();}}
    function 
    isnum(gatto) { if (isNaN(obj.value) || parseInt(obj.value)<90 || parseInt(obj.value) > 140)
                        { 
    alert('Please enter numbers only between 90 and 140');
                        
    obj.value="";
                        
    obj.focus();}}

    Quanti cani hai? <input type="text" onBlur="isnum(cane)">
    Quanti gatti hai? <input type="text" onBlur="isnum(gatto)"
    Ho dato (credo) nomi diversi alle funzioni vale a dire isnum(cane) e isnum(gatto) e nei form ho messo rispettivamente onBlur="isnum(cane)" e onBlur="isnum(gatto)". Non applica nessun controllo. Se invece nei form imposto onBlur="isnum(this)" esce sempre l'allert dell'ultima funzione.

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998

    Re: Script che si accavallano

    Originariamente inviato da Kian987
    Ne utilizzo altri 6 nella stessa dove cambiano i limiti dei numeri e conseguentemente il messaggio da mostrare.
    Spero che abbiano 6 nomi diversi...
    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

  5. #5
    Ecco è questo il punto... cosa deve avere nomi diversi? Nelle guide dicono che nominando la funzione quellochevuoi() la puoi richiamare nel form con onBlur="quellochevuoi()" ma a me non fa alcun controllo.

    Se ti rifersici ai form hanno name e id diversi. Non li ho messi per postare meno codice possibile cosi è più chiaro.
    Codice PHP:
    Quanti cani hai? <input type="text" name="cane" id="cane" onBlur="isnum(cane)"
    Quanti gatti hai? <input type="text"  name="gatto" id="gatto" onBlur="isnum(gatto)"

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Le function e le relative chiamate devono avere nomi diversi... quellochevuoi1, quellochevuoi2, eccetera... altrimento come si farebbe a capire quale delle sei deve essere eseguita?
    non per nulla ora viene eseguita l'ultima... dato che il suo codice sovrascrive quello delle precedenti.
    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

  7. #7
    Si ma ascolta adesso io ho esattamente questo codice
    Codice PHP:
    function cane() { if (isNaN(obj.value) || parseInt(obj.value)<|| parseInt(obj.value) > 180)
                        { 
    alert('Please enter numbers only between 1 and 180');
                        
    obj.value="";
                        
    obj.focus();}}
    function 
    gatto() { if (isNaN(obj.value) || parseInt(obj.value)<90 || parseInt(obj.value) > 140)
                        { 
    alert('Please enter numbers only between 90 and 140');
                        
    obj.value="";
                        
    obj.focus();}}

    Quanti cani hai? <input type="text" onBlur="cane()">
    Quanti gatti hai? <input type="text" onBlur="gatto()"
    E non funziona. Mi puoi fare l'esempio di come dovrebbe essere impostato un form con rispettivo js?

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    codice:
    <html>
    <head>
    <meta http-equiv="Content-type"
    content="text/html; charset=iso-8859-1" />
    <title> </title>
    <style type="text/css">
    .input_Animali {
    border: 1px solid #660000;
    font-size: 11px;
    font-family: "Courier New",Courier,monospace;
    font-weight: normal;
    color: #990000;
    }
    </style>
    <script type="text/javascript">
    function Animale(tipo,da,a) {
    //il valore deve essere numerico
    var num = parseInt(tipo.value)
    var cursor;
    //rilevo gli input del form
    var imput = document.getElementsByTagName('input');
    //eseguo un ciclo sul form 
    for(var i=0; i<imput.length; i++){
    //verifico che l'input abbia la classe corretta e che il valore immesso sia tra quello specificato
    if ((imput[i].className=='input_animali')&&(num < da) || (num > a)){ 
    //imposto il cursore
    cursor = true;
    //Avviso che input è sbagliato 
    alert('Please enter numbers only between '+da+' and '+a);
    //svuoto il campo del valore immesso errato
    tipo.value="";
    //esco dal ciclo
    break;
    }
    }
    //temporizzo il "cursore" per farlo tornare al campo precedente
    setTimeout(function(){if(cursor)tipo.focus()},500)
    }
    </script>
    </head>
    <body>
    Quanti cani hai? <input id="cane" class="input_animali" name="cane" onblur="Animale(this, 1, 180)" type="text" />
    Quanti gatti hai? <input id="gatto" class="input_animali" name="gatto" onblur="Animale(this, 90, 140)" type="text" />
    </body>
    </html>
    Questo è un esempio funzionante con due campi ma puoi aggiungerne quanti ne vuoi, modificando nome e id dell'input e di specificare la classe "input_animali" e nella funzione il range "10 > 30" che deve rilevare senza modificare o aggiungere niente nella funzione tipo:
    Quanti pesci hai? <input id="pesci" class="input_animali" name="pesci" onblur="Animale(this, 70, 130)" type="text" />
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Grazie mi hai aperto un mondo ho provato ad integrare nello script anche il controllo per verificare che siano solo numeri
    Codice PHP:
    return (!isNaN(counter) && !isNaN(parseFloat(counter))); 
    Funziona in modo strano. Inizia a spammare allert perchè, dal momento che verifica che i campi siano solo numeri, anche lo spazio vuoto dei form ancora da compilare lo rileva come errore. Come dirgli di ignorare il null?

  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Senza offesa ma non credo tu ne sia in grado, domani ci do un occhio.
    Ciao
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.