jQuery のコードに問題があります。ここでは、次のコードを使用してテーブルの行を動的に生成しています。各行には、2 つの異なる TD に 2 つの入力要素が含まれています。これに使用されるコードは次のとおりです[Working Fine]:
$("#pr_row:last").before(
'<tr id="pr_row" class="prw"><td id="pno">'+k+'</td>
<td id="prod">'+tp[0]+'</td><td>'+tp[4]+'</td>
<td>'+tp[2]+'</td><td><input type="text" class="rate" id="rate" onchange="update()" name="rate" value="0.00"> </td>
<td> <input type="text" id="quan" class="quan" onchange="update()" name="quan" value="0.00"> </td> <td id="amt"> 0.00 </td>
</tr>');
このコードは、次の表の行を生成しました:
<tr id="pr_row">
<td id="pno">1</td>
<td class="undefined" id="prod">prod 1</td>
<td class="undefined">50</td>
<td>150</td>
<td><input class="rate" id="rate" onchange="update()" name="rate" value="0.00" type="text"> </td>
<td> <input id="quan" class="quan" onchange="update()" name="quan" value="0.00" type="text"> </td>
<td id="amt"> 0.00 </td>
</tr>
問題は、行の入力要素にあります。彼らは、amount = rate * quan を計算する必要がある次の関数を呼び出します。関数 update() のコードは次のとおりです。
function update() {
var row = $(this).parents('#pr_row');
var price = Number(row.find('#quan').text()) * row.find('#rate').val();
isNaN(price) ? row.find('#amt').html("N/A") : row.find('#amt').html(price);
}
正常に実行されると、 の内部 HTML が更新されます。しかし、それは機能していません。デバッグ時に、関数が「#quan」と「#rate」から入力値を読み取ることができないことがわかりました。私を助けてください。