-2
Wenn ich versuche, eine Eingabeklasse in etwas anderes als val1 oder val2 zu ändern, funktioniert der gandTotal nicht mehr? Irgendwelche Ideen, warum das ist?Warum, wenn ich ändere oder versuche, eine andere, andere Eingabeklasse hinzuzufügen, hört die Gesamtsumme auf zu arbeiten?
ich das erste ändern möchten, und 3. Feld und fügen Sie eine if-Anweisung wie
if ($val1 <= 20) { $total = 0 } else { $total =$val1 * 1) * ($val2 * 1)-10);}
ein example
<table>
<tr class="calcrow no1">
<td>
<input name="txtEmmail" class="val1" />
</td>
<td>
<input name="txtEmmail" class="val2" value="0.5"/>
</td>
<td>
<span class="multTotal">0.00</span>
</td>
</tr>
<tr class="calcrow no2">
<td>
<input name="txtEmmail" class="val1" />
</td>
<td>
<input name="txtEmmail" class="val2" value="49.5"/>
</td>
<td>
<span class="multTotal">0.00</span>
</td>
</tr>
<tr class="calcrow no3">
<td>
<input name="txtEmmail" class="val1" />
</td>
<td>
<input name="txtEmmail" class="val2" value="20"/>
</td>
<td>
<span class="multTotal">0.00</span>
</td>
</tr>
<tr class="calcrow no4">
<td>
<input name="txtEmmail" class="val1" />
</td>
<td>
<input name="txtEmmail" class="val2" value="49.5"/>
</td>
<td>
<span class="multTotal">0.00</span>
</td>
</tr>
<tr>
<td colspan="3" align="right">
Grand Total#<span id="grandTotal">0.00</span>
</td>
</tr>
</table>
<script>
$(document).ready(function() {
$(".calcrow input").keyup(multInputs);
function multInputs() {
var mult = 0;
// for each row:
$(".calcrow ").each(function() {
// get the values from this row:
var $val1 = $('.val1', this).val();
var $val2 = $('.val2', this).val();
var $total = ($val1 * 1) * ($val2 * 1)
$('.multTotal',this).text($total);
mult += $total;
});
$("#grandTotal").text(mult);
}
});
</script>
, dass eine ungültige HTML-Struktur ist, so dass es nie funktioniert. '
Erstellen Sie ein [MCVE] oder die Frage wird geschlossen. –
Ich habe einen Link hinzugefügt, um das Beispiel anzuzeigen – Wrest
Antwort
First off, können Namenskonventionen diskutieren.
mit dem gleichen PräfixWo, wie Werte, nicht
Der Grund bringe ich anfangen:
Mit jQuery, Elementnamen werden in der Regel mit einem „$“, wie dies voran Ja, Sie können Dinge so benennen, wie Sie möchten, aber damit andere Ihren Code lesen und verstehen, erleichtern folgende Konventionen das Verständnis.
Als nächstes, wenn der Wert manipuliert werden soll, sollte er in einen numerischen Wert umgewandelt werden. So ist die letzte Anweisung oben sollte geworden:
Die
|| 0
wandelt eine leere Zeichenfolge in dem Wert auf einen Null.Jetzt ein ternary operator kann verwendet werden, um die Werte zu verarbeiten, wie man wollte:
Schließlich wird ein
.toFixed(2)
den Text hinzugefügt abschneiden (nicht abrunden!) Die sichtbaren Werte.Ich kann nicht alle Anforderungen verstanden haben, Sie zu treffen versuchen, aber versuchen Sie diese Demo hier: http://jsbin.com/jeqiki/edit?html,output
Quelle
2016-04-09 16:59:04 Mottie
danke mottie für die Zeit nehmen, ein paar Dinge zu erklären, sehr geschätzt. Ist es möglich, den ternären Operator auf einen ausgewählten Ausgang anzuwenden? als die, die du gezeigt hast, will ich nur für Ausgang 1 und ich möchte ein anderes für Ausgang 3 schaffen und lasse 2 und 3 so, wie sie sind? – Wrest
Vielen Dank für Ihre Hilfe Ich konnte es herausfinden – Wrest
nicht sicher, warum aber die.tofixed auf dieser Zeile $ ("# grandTotal"). text (mult.toFixed (2)); funktioniert nicht auf chrome kommt mit testcal.php: 85 Uncaught TypeError: total.toFixed ist keine Funktion – Wrest
Quelle
2016-04-09 18:22:01 Wrest
Verwandte Themen