Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    split con numeri e testi

    ciao a tutti
    in circa cinque radio button inserisco questo codice
    codice:
    <input type="radio" name="servizio" id='plus0' value="0|Facoltativo" onclick="UpdateCost()" checked="checked" /> Orario Facoltativo (gratis)
    
    <input type="radio" name="servizio" id='plus1' value="40.00|Obbligatorio" onclick="UpdateCost()" checked="checked" /> Orario Obbligatorio (€ 40,00)
    
    ecc......

    che si confronta con questo script
    codice:
    function UpdateCost() {
      var sum = 0;
      var gn, elem;
      for (i=0; i<5; i++) {
        gn = 'plus'+i;
        elem = document.getElementById(gn);
    	elem = elem.split('|'); 
    	elem = elem[0]; ERROREEEEEEE
        if (elem.checked == true) { sum += Number(elem.value)+Number(<?php echo $totale; ?>); }
      }
      document.getElementById("Totale").innerHTML = "&euro; " + sum.toFixed(2);
    }
    ho pensato di fare così perchè non so come poter passare al db, in fase di post, due valori per uno stesso radio: valore in euro e nome del servizio.

    L'errore che ricavo dallo script è
    Type error: elem.split is not a function

    come mi comporto?
    ---------------------------
    danielix05

  2. #2
    elem contiene l'oggetto radio, non puoi splittare un oggetto:
    elem = elem.split('|');

    ma solo il suo attributo value:
    elem = elem.value.split('|');

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    non basta quella modifica perche dopo viene eseguita l'istruzione

    elem.checked == true

    mentre elem è stato valorizzato con il valore in euro, devi salvare l'oggetto e il valore in due variabili differenti

    prezzo = elem.value.split('|')[0];

  4. #4

    fatto bene?

    ho modificato la riga in questo modo e sembra andare
    codice:
      for (i=0; i<5; i++) {
        gn = 'plus'+i;
        elem = document.getElementById(gn);
        if (elem.checked == true) { sum += Number(elem.value.split('|')[0])+Number(<?php echo $totale; ?>); service = elem.value.split('|')[1]; }
      }
    ---------------------------
    danielix05

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 © 2026 vBulletin Solutions, Inc. All rights reserved.