Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228

    [jquery] calculation e checkbox

    rieccomi di nuovo qui con calculation.
    spiego in 2 parole. ho 4 checkbox che vorrei sommare ad un valore già calcolato in precedenza tramite php

    lato client mi arriva questo
    codice:
    <div id="totale">200.50</div>
    <h3>Opzioni</h3>
    <input name="checkbox[1]" class="chkOptions" value="10.00" type="checkbox" id="1">
    <input name="checkbox[2]" class="chkOptions" value="15.00" type="checkbox" id="2">
    <input name="checkbox[3]" class="chkOptions" value="20.00" type="checkbox" id="3">
    <input name="checkbox[4]" class="chkOptions" value="25.00" type="checkbox" id="4">
    L'utente premendo su una checkbox dovrebbe vedere il valore 200.50 incrementarsi del rispettivo valore da sommare

    Ho inserito jquery calculation con questo semplice script
    codice:
    $("input[id='1'],input[id='2'],input[id='3'],input[id='4']").sum("keyup", "#totale");
    Carico la pagina e anziché vedere quanto in alto, il contenuto di #totale è 70 (senza decimali o altro)
    Anche agendo sui singoli checkbox il valore di #totale non cambia. Per ora ho semplicemente commentato la riga con l'istruzione "sum", ma vorrei ovviamente farlo funzionare, possibilmente con l'uso della virgola al posto del punto nel div #totale

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    il keyup nelle checkbox non mi sembra che esista prova a sostituirlo con checked (sempre che sia supportato da calculation/sum)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228
    già provato, ma senza esito.

  4. #4
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228
    ho provato questo codice che con calculation non c'entra nulla.
    codice:
        jQuery(".chkOptions").click(
          function () {
            var ntot = 0;
            jQuery(".chkOptions:checked").each(function () {
              ntot += parseInt(jQuery(this).val());
            });
            jQuery("#txtSavingsTot").val(ntot);
          })
          .change();
    non funziona, tuttavia credo che sia dovuto a quanto più sopra...
    codice:
    	  /* see if anything is previously checked and reflect that in the view*/
    	  jQuery(".checklist input:checked").parent().addClass("selected");
    	
    	  /* handle the user selections */
    	  jQuery(".checklist .checkbox-select").click(
    		  function(event) {
    			  event.preventDefault();
    			  jQuery(this).parent().addClass("selected");
    			  jQuery(this).parent().find(":checkbox").attr("checked","checked");
    			
    		  }
    	  );
    	
    	  jQuery(".checklist .checkbox-deselect").click(
    		  function(event) {
    			  event.preventDefault();
    			  jQuery(this).parent().removeClass("selected");
    			  jQuery(this).parent().find(":checkbox").removeAttr("checked");
    		  }
    	  );
    Questi i 2 link che mostrano rispettivamente la prima porzione di codice http://skfox.com/jqExamples/CheckBoxValues.html e la seconda che non è altro che uno script per visualizzare i checkbox in modo più carino http://aaronweyenberg.com/90/pretty-...es-with-jquery

  5. #5
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Senza le lungaggini di jQuery....

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Esempio</title>
    <script type="text/javascript">
    function chbSum () {
    	var oDisplay = document.querySelector("#totale");
    	oDisplay.innerHTML = parseFloat(oDisplay.innerHTML) + (this.checked ? parseFloat(this.value) : - parseFloat(this.value));
    }
    
    window.onload = function () {
    	Array.prototype.forEach.call(document.querySelectorAll(".chkOptions"), function (oChB) {
    		if (oChB.checked) { this.innerHTML = parseFloat(this.innerHTML) + parseFloat(oChB.value); }
    		oChB.onchange = chbSum;
    	}, document.querySelector("#totale"));
    };
    </script>
    </head>
    <body>
    <form name="tuoForm">
    	<div id="totale">200.50</div>
    	<h3>Opzioni</h3>
    	<input name="checkbox[1]" class="chkOptions" value="10.00" type="checkbox" id="1">
    	<input name="checkbox[2]" class="chkOptions" value="15.00" type="checkbox" id="2">
    	<input name="checkbox[3]" class="chkOptions" value="20.00" type="checkbox" id="3">
    	<input name="checkbox[4]" class="chkOptions" value="25.00" type="checkbox" id="4">
    </form>
    </body>
    </html>
    P.S. Ho presupposto che questo comportamento debba essere valido per tutte le checkbox con class="chkOptions". Gestiscitelo di conseguenza...

  6. #6
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228
    Non funziona.
    Non so se è un problema legato allo stile applicato alle checkbox tramite jquery e css, ma nessun suggerimento funziona.

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.