2016-05-24 9 views
0

Oké Jungs Ich bin an einem Projekt arbeiten, wo ich erhielt:Mindestanzahl Wert auf innerHTML- Put

<select class="select2" id="product1" onchange="shopCalculate(this.value)." > 
           <option value="4.1" >Option 1</option> 
           <option value="4">Option 2</option> 
           <option value="3.9">Option 3</option> 
           <option value="3.8">Option 4</option> 
           <option value="3.75">Option 5</option> 
          </optgroup> 
           <option value="3.7">Option 6</option> 
           <option value="3.65">Option 7</option> 
           <option value="3.6">Option 8</option> 
           <option value="3.5">Option 9</option> 
           <option value="3.5">Option 10</option> 
          </optgroup> 
           <option value="3.5">Option 11</option> 
           <option value="3.3">Option 12</option> 
           <option value="3.1">Option 13</option> 
           <option value="2.9">Option 14</option> 
           <option value="2.7">Option 15</option> 
          </optgroup> 
           <option value="2.5">Option 16</option> 
           <option value="2.3">Option 17</option> 
           <option value="2.1">Option 18</option> 
           <option value="1.9">Option 19</option> 
           <option value="1.7">Option 20</option> 
          </optgroup> 

          </select> 

      <ul> 
      <li><strong class="bg-info"><%= full_title(yield(:title)) %></strong></li> 

      <li id="product_type"></li> 
      <li id="product_sort"></li> 
      <li id="product_tag"></li> 

     <hr/> 
      <li> 
       <strong> 
       Total cost: <span id="cost_eur">€0.00 </span> (<span id="cost_usd" class="small">$0.00</span>) 
       </strong> 
      </li> 
      </ul> 
     <hr/> 

function shopCalculate(a) { 
    var product1 = $('select[id=product_1]').val(); 
    cost_eur.innerHTML = "€" + (a - product1).toFixed(2); 
    cost_usd.innerHTML = "$" + (a - product1 * 1.13).toFixed(2); 
    } 

Dies ist das Ergebnis setzt auf cost_eur und cost_usd, aber der Gesamtwert wird negativ (dh < 0) auf einige Gelegenheiten. Was ich will, ist eine Standardnummer wie 10, wenn der Wert < 10. Wie mache ich das, da innerHTML bringt eine Zeichenfolge. Ich habe einige Dinge mit parseFloat() versucht, aber offensichtlich hat das nicht funktioniert. Jede Hilfe wäre willkommen!

+0

'.val()' auf '.text()' –

+0

Leider mein schlechtes ich einen wichtigen Teil des Codes vergessen haben, die Sie auf dem falschen Weg bekam. Bearbeitet. – luissimo

Antwort

1

Fügen Sie eine weitere Funktion hinzu, um die Gesamtmenge zu berechnen und übergeben Sie sie so. Ich hoffe es hilft.

function calculateTotalAmt(a, currencyType) { 
    var totalAmt; 
    var product1 = $('select[id=product_1]').val(); 
    if(currencyType == 'euro') { 
     totalAmt = (a - product1).toFixed(2); 
    } else if(currencyType == 'usd') { 
     totalAmt = (a - product1 * 1.13).toFixed(2); 
    } 
    if(totalAmt != undefined && totalAmt < 10) 
     totalAmt = 10; 
    return totalAmt; 
} 

function divCalculate(a) {  
    cost_eur.innerHTML = "€" + calculateTotalAmt(a,'euro'); 
    cost_usd.innerHTML = "$" + calculateTotalAmt(a,'usd'); 
    } 
+0

Hmm, ich verstehe nicht ganz, wo Sie die "Euro" - und "Usd" -Variablen bekommen und auf meiner Seite ein bisschen klarer werden. Ich brauche beide Werte von Euro und Dollar, um nicht das eine oder das andere zu drucken. – luissimo

+0

Ich habe eine Funktion geschrieben, die den Typ der Währung annimmt. Basierend auf dem Währungstyp berechnet es den Gesamtbetrag. Ich habe die gleiche Berechnungslogik in dieser Funktion wie in Ihrem Code verwendet. Sie können in Zukunft weitere Währungstypen hinzufügen, daher übergebe ich ausdrücklich die Währungstypen. – abhiagNitk

+0

Arbeitete perfekt, vielen Dank! – luissimo