Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126

    funzione che non ne vuole sapere di funzionare..

    Scusate il titolo, ma non sò il perchè di questo problema..
    ho questa funzione di controllo e confronto del valore di un campo di testo con il valore di un campo nascosto:
    codice:
    function ctrl(i){
    var e=document.f.elements[i];
    if(e.value==""){
     alert("Inserire una valore nel campo quantità del prodotto")// '"+document.f.elements['tit'+nomecampo].value+"'");
     return false;
     e.focus();
     }
     //  if (isNaN(e.value)) {
       //alert("Inserire una valore numerico nel campo quantità del prodotto")// '"+document.f.elements['tit'+nomecampo].value+"'");
        //return false;
    	//e.focus();
      //}
     if (parseInt(e.value)<document.f.elements['h'+i].value) {
      alert("Inserire una valore uguale o superiore a")// "+document.f.elements['h'+nomecampo].value+" ne campo quantità del prodotto '"+document.f.elements['tit'+nomecampo].value+"'");
       return false;
       e.focus();
     }
     return true;
    }
    Richiamo la funzione all'onchange dei campi di testo:
    codice:
    <input name="h1" type="hidden" id="h1" value="20">
     <input name="qta" type="text" class="ctrlsqta" id="qta" title="Ricorda di aggiornare il carrello dopo aver modificato la quantità" value="2" size="2" 
    	onChange="return ctrl('1')" >
    Ma non riesco a venirne a capo del perchè pur essendoci ad esempio un valore nel campo di testo superiore al valore del campo nascosto, non mi venga restituito l'errore..
    ovviamente neanche se il campo di testo è vuoto mi restituisce l'errore
    Perfavore qualcuno mi illumini
    Voglio l'alt+s anche per FF

  2. #2
    devi passare un intero alla funzione, non una stringa.

    ciao

  3. #3
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    anche se passo un intero, quindi senza gli apici, non mi funziona lo stesso..
    Voglio l'alt+s anche per FF

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Prova cosi (non testato)

    codice:
    function ctrl(anInput,i){
    if(anInput.value==""){
     alert("Inserire una valore nel campo quantità del prodotto");
     return false;
     anInput.focus();
     }
     if (parseInt(anInput.value)<document.getElementById('h'+i).value) {
      alert("Inserire una valore uguale o superiore a");
       return false;
       anInput.focus();
     }
     return true;
    }
    ....
    <input name="h1" type="hidden" id="h1" value="20">
     <input name="qta" type="text" class="ctrlsqta" id="qta" title="Ricorda di aggiornare il carrello dopo aver modificato la quantità" value="2" size="2" 
    	onChange="return ctrl(this,1)" >

  5. #5
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    bhè cosa dirti.. grazie
    funziona benissimo..
    solo una cosa, che non centra con quello che ho chiesto, al primo caricamento della pagina, il campo di testo contiene un numero che spesso è minore del valore del campo nascosto, quindi è errato..
    ora anche se vado con il cursore nel campo di testo e non lo modifico ed esco dal campo, non mi viene ritornato l'errore.. ed è normale perchè la funzione viene richiamata all'onchange
    Secondo te quale evento potrei usare?
    La poteosi sarebbe quella di poter verificare tutti i campi all'onsubmit, ma è un casotto.. almeno per me
    Grazie ancora
    Voglio l'alt+s anche per FF

  6. #6
    prova ad inserire questo fra le funzioni,poi lo richiami con onsubmit del form...
    function ctrltutti(){
    numtexts=new Array();
    a=0;
    for(var i=0;i<document.ilTuoForm.elements.length;i++){
    if(document.ilTuoForm.elements[i].type=="text") {
    numtexts[a]=i;a++}
    }
    for(var i=0;i<a;i++){
    ctrl(document.ilTuoForm.elements[numtexts[i]],i+1);
    }
    }
    dopo il campo hidden h1 deve venire il campo text che lo utilizza, poi hidden h2 poi text che lo usa, e avanti così.
    ah,al posto di ilTuoForm ci devi mettere il nome del tuo form.
    cmq può darsi che avrai dei problemi dovuti agli indici,ma purtroppo se non posti il form completo non è facile indovinare come puoi averlo impostato

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Non avevo notato....

    Devi mettere il focus() prima del return.

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.