次の事前入力された入力テーブルで変更された値を検出する方法を見つけようとしています。MongoDB からデータを取得し、Express-Handlebars と nodejs を使用してデータを HTML に入力します。
<form action="/someaction" method="post">
<table class="responsive-table-input-matrix">
<thead>
<tr>
<th>name</th>
<th>some setting</th>
<th>some setting</th>
<th>some setting</th>
<th>some setting</th>
</tr>
</thead>
{{# each values }}
<tbody>
<tr>
<td> {{ this.name}} </td>
<td><input type="string" style="position: relative;" name="some setting" value={{this.some setting}} autofocus></td>
<td><input type="string" style="position: relative;" name="some setting" value={{ this.some setting}}></td>
<td><input type="text" style="position: relative;" value="some setting" value={{ this.some setting}}></td>
<td><input type="text" style="position: relative;" value="some setting" value={{ this.some setting}}></td>
<input type="hidden" name="someid" value={{ this.some id}}>
</tr>
</tbody>
{{/each}}
</table>
<button type="submit" class="btn btn-success">Submit</button>
</form>
[送信] ボタンをクリックすると、サーバーはすべての構成を含むオブジェクトを受け取ります。次に、MongoDB に書き戻したいと思います。しかし、変更されていない値を書き戻したくありません。オブジェクトを反復処理できますが、行は基本的に無制限であるため、サーバーのパフォーマンスの問題につながる可能性があります。
その特定の行で値が変更されたかどうかを検出し、サーバーが受信したオブジェクトで何らかの形でマークする方法があるかどうかを知りたかったのです。これにより、オブジェクト全体を 1 回反復するだけで、変更された構成のみを書き込むことができます。
HTML や JS には、それを実行できる onChanged のようなものがあることがわかりました。しかし、私はそれが直接の変更に使用されているのを見ただけで、ボタンが押されたときにのみ変更を適用したいのです。
できればJavascriptは避けたい!
自分のやりたいことを何らかの形で表現できればと思っています。前もって感謝します!