私はmvcの初心者であり、eコマースウェブサイトを開発中です。 私のカートのリストには、総額を計算するために特定の数量を入力する必要があります。 私はforeach文の中でJavaスクリプト呼び出しを使用しましたが、呼び出しはカート項目リストの最初の項目に対してのみ機能します。Javascriptコールは、foreachステートメント内の最初の項目に対してのみ機能します
私は2番目またはその他の項目の「合計価格」フィールドをクリックすると、その後コントロールは最初の項目の「合計価格」フィールドに行きます。
私のスクリプトは
<script>
function edValueKeyPress() {
var i ;
for (i = 0; i < 5; i++) {
var edValue = document.getElementById("qt");
var edValue1 = document.getElementById("cprice");
var s = edValue.value * edValue1.value;
var t = document.getElementById("total");
t.value = s;
}}
</script>
は、あなたが同じID名を追加する必要が
<table class="table">
@foreach (var item in lscart)
{
<tr>
<td>
@{
var base64 = Convert.ToBase64String(item.CImage);
var imgSrc = String.Format("data:image/jpg;base64,{0}", base64);
<img src='@imgSrc' style="width:100px; height:100px;" />
}
</td>
<td>@Html.DisplayFor(modelItem => item.CProductName)</td>
<td>Rs.</td>
<td>@Html.EditorFor(modelItem => item.CPrice, new { htmlAttributes = new { @class = "form-control", @readonly = "readonly",@id="cprice" } })</td>
<td>
<div class="col-md-6">
@Html.EditorFor(modelItem => item.Cquantity, new { htmlAttributes = new { @class = "form-control", @placeholder = " Qty",@id="qt" } })
</div>
</td>
<td>
<div>
@Html.EditorFor(modelItem => item.CTotalPrice, new { htmlAttributes = new { @class = "form-control", @readonly = "readonly", @placeholder = " Total Price", @id = "total", @onclick = "edValueKeyPress()", @onkeyup = "edValueKeyPress()" } })
</div>
</td>
<td><a href="#"><i class="fa fa-close"></i></a></td>
</tr>
}
</table>
https://i.stack.imgur.com/MF9pV.png
がid'属性が無効なHTMLです '重複します。 'new {id =" "}'を使ってそれらをすべて削除し、クラス名と相対セレクタを使用します。コレクションのフォームコントロールを生成する方法を理解するには、[この回答](http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943)を参照してください –
コードが無効です実行できません。あなたは閉じ込め '}'がありません –
あなたの問題は結果のhtml構造であり、同じid(qtとprice)を持つ複数のDom要素を持つことはできません – FabioG