У меня есть проблемы с этими кодами. Коды работают без l oop, но мне нужно менять идентификаторы div, входные идентификаторы и имена переменных в каждом l oop. Значение "@ id's" увеличивается последовательно (например: 1-2-3 ....). но я не могу рассчитать сумму. Вот мои коды;
<div class="row verigirisler_@id" id="turdiv_@id" style="display:none">
@{ foreach (var tbirimfiyat in ViewBag.TurlerBirimFiyat)
{
if (item.Musteri_ID == tbirimfiyat.Musteri_ID && tur.Tur_ID == tbirimfiyat.Tur_ID)
{
<input type="text" class="turbirimfiyat" id="turbirfiyat_@id" name="Musteri_ID" value="@tbirimfiyat.tBirim_Fiyat" />
}
}
}
<div class="col mb-1">
<div class="input-group">
<div class="input-group-append">
<span class="input-group-text bg-success">Verilen @tur.Tur_Ad</span>
<input type="number" value="0" id="verilen_@id" class="form-control turadetler_@id" name="verilen">
</div>
</div>
</div>
<div class="col mb-1">
<div class="input-group">
<div class="input-group-append">
<span class="input-group-text ml-3 bg-success">Alınan @tur.Tur_Ad</span>
<input type="number" class="form-control turadetler_@id" id="alinan_@id" name="alinan" value="0">
</div>
</div>
</div>
<div class="col mb-1">
<div class="input-group">
<div class="input-group-append">
<span class="input-group-text ml-3 bg-success">Alınan Para</span>
<input type="number" class="form-control" id="para_@id" name="para" value="0">
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
var birim_@id = $('#turbirfiyat_@id').val();
$(".turadetler_@id").on("keydown keyup", function() {
var sum_@id = 0;
//iterate through each textboxes and add the values
$(".turadetler_@id").each(function() {
//add only if the value is number
if (!isNaN(this.value) && this.value.length != 0) {
sum_@id += parseFloat(this.value) * (birim_@id) //(Number(birim_@id) || 0)
$(this).css("background-color", "#FEFFB0");
} else if (this.value.length != 0) {
$(this).css("background-color", "red");
}
});
$("input#para_@id").val(sum_@id);
});
});
</script>
</div>
Сообщение об ошибке; jquery -3.3.1. js: 8032 Указанное значение «NaN» не является допустимым числом. Значение должно соответствовать следующему регулярному выражению: -? (\ D + | \ d +. \ D + |. \ D +) ([eE] [- +]? \ D +)?
А вот мои коды без петли;
$(document).ready(function() {
var birim= $('#turbirfiyat').val();
$(".turadetler").on("keydown keyup", function() {
var sum = 0;
$(".turadetler").each(function() {
if (!isNaN(this.value) && this.value.length != 0) {
sum += parseFloat(this.value) * birim;
$(this).css("background-color", "#FEFFB0");
}
else if (this.value.length != 0) {
$(this).css("background-color", "red");
}
});
$("#para").val(sum.toFixed(2));
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td width="40px">1</td>
<td>Number</td>
<td><input type="text" name="txt" id="turbirfiyat" value="2" /></td>
</tr>
<tr>
<td>2</td>
<td>verilen</td>
<td><input class="turadetler" type="text" name="txt" id="verilen"value="0" /></td>
</tr>
<tr>
<td>3</td>
<td>Alinan</td>
<td><input class="turadetler" type="text" name="txt" id="alinan" value="0" /></td>
</tr>
<tr id="summation">
<td colspan ="2" align="right">
Sum :
</td>
<td>
<input type="text" id='para' name="input" />
</td>
</span>
</td>
</tr>
</table>
Вывод;
<div class="row verigirisler_3" id="turdiv_3" style="">
<input type="text" class="turbirimfiyat" id="turbirfiyat_3" name="Musteri_ID" value="0,2">
<div class="col mb-1">
<div class="input-group">
<div class="input-group-append">
<span class="input-group-text bg-success">Verilen Tahinli</span>
<input type="number" value="0" id="verilen_3" class="form-control turadetler_3" name="verilen" style="background-color: rgb(254, 255, 176);">
</div>
</div>
</div>
<div class="col mb-1">
<div class="input-group">
<div class="input-group-append">
<span class="input-group-text ml-3 bg-success">Alınan Tahinli</span>
<input type="number" class="form-control turadetler_3" id="alinan_3" name="alinan" value="0" style="background-color: rgb(254, 255, 176);">
</div>
</div>
</div>
<div class="col mb-1">
<div class="input-group">
<div class="input-group-append">
<span class="input-group-text ml-3 bg-success">Alınan Para</span>
<input type="text" class="form-control" id="para_3" name="para" value="0">
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
var birim_3 = $('#turbirfiyat_3').val();
$(".turadetler_3").on("keydown keyup", function() {
var sum_3 = 0;
$(".turadetler_3").each(function() {
if (!isNaN(this.value) && this.value.length != 0) {
sum_3 += parseFloat(this.value) * birim_3; //(Number(birim_3) || 0)
$(this).css("background-color", "#FEFFB0");
} else if (this.value.length != 0) {
$(this).css("background-color", "red");
}
});
$("input#para_3").val(sum_3);
});
});
</script>
</div>
Как исправить?