Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    166

    eventi su form dinamico

    Ciao a tutti,
    genero dinamicamente un form impaginato in una tabella html con righe e colonne.
    ogni riga ha un campo quantita con un suo id univoco "qta_1 per la prima riga, qta_2 per la seconda ecc." e un contenitore span con id univo per il costo "costo_1 per la prima riga, costo_2 per la seconda ecc.

    devo gestire l'evento cambia sul campo quantita e aggiornare il prezzo.

    faccio così ma non è soddisfacente:
    function aggiorna(qta_id, prezzo)
    {

    var theEvent = window.event;
    var key = theEvent.keyCode || theEvent.which;
    key = String.fromCharCode( key );

    var regex = /[0-9]|\./;
    if( !regex.test(key) )
    {
    key="";
    theEvent.returnValue = false;
    theEvent.preventDefault();
    }
    var ref = document.getElementById(qta_id);
    var quantita = ref.value+key;

    var a = qta_id.split("_");
    var id = a[1];

    $('#costo_'+id).text(prezzo*quantita);
    }

    sul campo quantita aggiungo l'evento così:

    <input type="text" name="qta_1" id="qta_1" value="1" onkeypress="aggiorna('qta_1',10.5);"></td><td><span id="costo_1">23.95</span>

    il tutto funziona ma:
    1) se gestisco l'evento onchange al posto di onkeypress ho l'aggiornamento solo quando esco dal campo mentre io lo vorrei immediato
    2) la mia funzione non sente il tasto backspace quindi se cancello una cifra non aggiorna
    3) se seleziono la cifra della quantità e la modifico con altro numero ho un risultato inatteso


    qualcuno che ha già affrontato questo punto potrebbe indicarmi la strada corretta da percorrere?

    grazie

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    prova a settare gli eventi keyup e keydown

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    166
    così?
    document.onkeydown = keyDown;
    document.onkeyup = keyUp;

    grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    166
    no scusa così non può funzionare.
    come faccio a settare gli eventi keyup e keydown?
    io devo comunque passare alla mia funzione
    aggiorna(qta_id, prezzo) i parametri qta_id e prezzo per tutto mi deve funzionare su più campi di input

    grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    166
    nessun sul forum?

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    cosi' come setti keypress, al posto di keypress

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    166
    dai dimmi se sbaglio, così?
    <input type="text" name="qta_1" id="qta_1" value="1" document.onkeydown="aggiorna('qta_1',10.5);">

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.