Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466

    Prodotto di due text box

    Con una ricerca qualcosa ho trovatoma nonsono riuscito a chiarire ugualmente.

    Ho tre text box (in realtà li stampo con un wirteln)
    <input type=text name=campo1>
    <input type=text name=campo2>
    <input type=text name=prodotto>

    In pratica vorrei che dopo aver inserito due valori nel campo 1 e nel campo 2 nel campo prodotto ci fosse inserito automaticamente il prodotto dei due?

    Aveo provato una cosa simile ma nulla

    <input type=text name='prodotto' maxlength=30 size=30 value='this.value=campo1.value*campo2.value;'>

    Grazie, Mc

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    codice:
    <script>
    function molt(f) {
      c1=parseFloat("0"+f.campo1.value);
      c2=parseFloat("0"+f.campo2.value);
      f.prodotto.value=c1*c2;
    }
    </script>
    ...
    <form>
    <input type=text name=campo1
      onblur="molt(this.form)">
    <input type=text name=campo2
      onblur="molt(this.form)">
    <input type=text name=prodotto> 
    </form>
    ciao
    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Per prima cosa cosa grazie molte.

    Il campo in cui vorrei inserire il prodotto si ottiene così:

    document.writeln(" <input type=text name='campoC0' onFocus='mustMoveFocus=true;currPos=0;' onBlur='mustMoveFocus=false;' maxlength=30 size=30>");

    posso fare una cosa simile:

    document.writeln(" <input type=text name='campoC0' onFocus='mustMoveFocus=true;currPos=0;' onBlur='mustMoveFocus=false;molt(this.form;">' maxlength=30 size=30>");

    Grazie, Mc

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Ho risolto.

    Però non riesco a fare una cosa simile.

    Se nella tua funzione:

    function molt(f) {
    c1=parseFloat("0"+f.campoE0.value);
    c2=parseFloat("0"+f.campoF0.value);
    f.campoG0.value=c1*c2;
    }

    volessi fare che al posto di

    c1=parseFloat("0"+f.campoE0.value);

    ci fosse:

    c1=parseFloat("0"+f.campoEvalore.value);

    dove valore è una variabile che un' altra funzione incrementa, quindi una volta sarà 0 poi 1 po2 ecc come devo fare?

    Grazie, Mc

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    c1=parseFloat("0"+f.elements['campoE'+valore].value);
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Grazie mille, Mc

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Sono sempre nei guai, posto il codice così forse è più chiaro (grazie per la santa pazienza):

    Ho modificato la tua funzione così:

    function molt(f,g) {
    c1=parseFloat("0"+f.elements['campoE'+g].value);
    c2=parseFloat("0"+f.elements['campoF'+g].value);
    f.elements['campoG'+g].value.value=c1*c2;
    }

    Ed ho nel mio codice che genera il campo:

    html+=" <input type=text name='campoE"+num+"' onFocus='mustMoveFocus=true;currPos="+num+";' onBlur='mustMoveFocus=false;molt(this.form,COSA CI METTO);' maxlength=30 size=5>";
    html+=" <input type=text name='campoF"+num+"' onFocus='mustMoveFocus=true;currPos="+num+";' onBlur='mustMoveFocus=false;molt(this.form,COSA CI METTO);' maxlength=30 size=5>";
    html+=" <input type=text name='campoG"+num+"' onFocus='mustMoveFocus=true;currPos="+num+";' onBlur='mustMoveFocus=false;' maxlength=30 size=5>";

    Al posto di COSA CI METTO vorre inserire il valore di num.

    Grazie ancora, Mc

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    html += " <input type='text' name='campoE"+num+"' onFocus='mustMoveFocus=true;currPos="+num+";' onBlur='mustMoveFocus=false;molt(this.form,\""+num +"\");' maxlength='30' size='5'>";


    Oppure:
    html += " <input type='text' name='campoE"+num+"'";
    html += " onFocus='mustMoveFocus=true;currPos="+num+";'";
    html += onBlur='mustMoveFocus=false; molt(this.form,\\""+num+"\\");' maxlength='30' size='5'>";

    Notare che davanti alle virgolette interne c'e` una (o due) backslash. S enon funziona prova a mettercene tre backslash (ogni volta che la stringa viene manipolata le backslash si riducono di 1 meno della meta`).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Thanks, ora provo.

    Con i consigli dei mod, l' aiuto del mio amico (che ha fatto quasi tutto lo script) ed i ragazzi del forum sono riuscito quasi a concludere la parte in js.

    Ora però devo mettermi a studiarla seriamente perchè per quanto concerne le interfacce grafiche la trovo molto utilie e potente.

    Ciao, Mc

    P.S. Dopo magari apro una discussione e posto il codice, a qualcuno potrebbe servire.

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Funziona con un solo slash.

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.