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

Discussione: operazione onChange

  1. #1

    operazione onChange

    ciao, ho un campo da aggionare ad ogni "change" di un menu a discesa/elenco di numeri...dovrei fare qualcosa come

    document.form.netto.value=(document.form.lordo.val ue-document.form.ticket.value);

    ma come potrete capire questa soluzione non funge...penso che basti "tradurre" in numeri "lordo" e "ticket"...ho provato con number ma non è quella...non mi ricordo, che funzione è? o come altro posso risolvere? thnx

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Campi di tipo diverso vengono letti con script diversi.

    Dovresti dire:
    cosa intendi per "menu a discesa" (forse una select?);
    come si chiama il form;
    come si chiamano i campi;
    su quale campo occorre applicare l'evento onchange.

    Non usare nomi riservati del DOM per i nomi di form e campi (ad esempio form).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    allora:
    menu/elenco/select pensavo si capisse...vabbè
    il form si chiama form
    i campi si chiamano lordo, ticket, nettoi campi che vengono "processati" lordo, ticket,netto
    la somma algebrica di ticket e lordo vanno in netto
    ...mi pareva di aver già detto tutto

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Il form io lo chiamo "form1" (form e` parola riservata del DOM).
    Suppongo che i campi con nome lordo, ticket, netto siano campi di tipo text e siano nello stesso form della select. Se questo none` vero, la funzione va modificata.

    <select ... onchange="calcola(this);">

    la funzione calcola (da inserire inuno script in head) sara` di questo tipo:
    codice:
    function calcola(ss) {
      var l = parseFloat(ss.form.lordo.value);
      var t = parseFloat(ss.form.ticket.value);
      ss.form.netto.value = l + t;
    }
    Nota che il valore della select non viene usato nella mia funzione.
    Nella tua prima versione avevi messo il meno tra due valori, mantre in quest'ultima chiedi il +.
    Dato che non so cosa sia il ticket, non so quale sia corretta.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    la select ha ocme nome ticket e quindi va utilizzata...come si fa?

    PS=non ho chiesto il più, ho chiesta la somma algebrica che, come avevo detto nel primo post, è tra lordo e il reciproco di ticket.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Posta il codice HTML che usi, e segnala dove vuoi l'evento (in quale tag). Altrimenti devo continuare a fare supposizioni.

    Intendo il codice del tag <form> e dei campi intressati, non serve la pagina intera (in cui dovrei cercare i tag).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    non mi pare di aver lasciato molto al'immaginazione cmq il form è questo
    codice:
    <form action="" method="post" name="form1">
    <table width="75%"  border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">
    <tr>
    <td align="left" valign="middle">Importo Lordo Ricetta</td>
    qui c'è "lordo" cui va sottratto "ticket"
    <td width="50%" align="left" valign="middle">
    <input name="lordo" type="text" id="lordo" value="<%=totale%>" maxlength="9">&euro; 
    </td>
    </tr>
    <tr>
    <td align="left" valign="middle">Importo Ticket 
    </td>
    <td width="50%" align="left" valign="middle">
    qui c'è "ticket", il valore da sottrarre a "lordo"
    <select name="ticket" id="ticket" onChange=" ????">
    <option selected></option>
    <option>0</option>
    <option>18,59</option>
    <option>36,15</option>
    <option>72,30</option>
    </select> 
    &euro;
    </td>
    </tr>
    <tr>
    <td align="left" valign="middle">Importo Netto Ricetta
    </td>
    <td width="50%" align="left" valign="middle">
    qui c'è "netto", il campo in cui va il risultato dell'operazione
    <input name="netto" type="text" id="netto" maxlength="9">&euro; 
    </td>
    </tr>
    <tr align="center" valign="middle">
    <td colspan="2">[b]
    
    qui c'è il pulsante che manda il form...da non prendere in considerazione
    <input type="submit" name="Submit" value="Registra">
    </td>
    </tr>
    </table>
    </form>
    in Rosso c'è il campo che determina l'operazione, l'onChange per intenderci.
    Il mio scopo è che dopo ogni cambio della select di nome "ticket" il valore del campo di testo "lordo" venga preso e sottratto a "ticket" stesso; il valore di suddetta operazione deve essere automaticamente immesso nel campo di testo "netto".chiaro?

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Be` mano male che c'e` il sorgente, altrimenti avremmo perso altri tre scambi di post per capire l'errore.

    codice:
    <select name="ticket" id="ticket" onChange="calcola(this);">
      <option value="" selected></option>
      <option value="0">0</option>
      <option value="18.59">18,59</option>
      <option value="36.15">36,15</option>
      <option value="72.30">72,30</option>
    </select>
    Nota che questi sono i piu` grossi, ma stai usando un linguaggio HTML antiquato, che potrebbe darti problemi in qualche browser.
    Nota che nell'attributo value, i numeri sono scritti con il punto

    La funzione calcola, va inserita in uno script della head:
    codice:
    <script type="text/javascript">
    function calcola(ss) {
      var l = parseFloat(ss.form.lordo.value.replace(/\,/, ".") );
      var t = parseFloat(ss.options[ss.selectedIndex].value);
      var n = l - t;
      ss.form.netto.value = n.replace(/\./, ",");
    }
    </script>
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    sinceramente che mi dà errori in altri browser non mi interessa minimamente...non sapevo che l'HTML si fosse evoluto, devo leggere di più .Grazie X l'aiuto

    Curiosità: ma se non uso la select come mi hai segnalato ai fini della funzione cambia qlkosa?

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.