article-idが送信されたときに私の剣道グリッドをループするスクリプトがあります。このスクリプトは、一致が見つかったときに+1に数量を追加します。一致が見つかったら、同じarticle-idがグリッド内に複数の行を持つことができ、最初の一致に+1だけ追加することになるので、スクリプトのループを止めたい。私はforeachループにbreak;
を含めることはできませんし、forループを使用することは剣道グリッドのデータローに対しては機能していないようです。現在、コードは一致する行に+1を追加します。私はこれをどのように達成できるのか誰にも分かりますか?成功時にループを止める方法
JS:
$('#txtBarcode').submit(function (e) {
var grid = $("#GCLinesGrid").data("kendoGrid");
var dataSource = $("#GCLinesGrid").data("kendoGrid").dataSource;
var allData = grid.dataSource.data();
var code = this.value;
$.each(allData, function (index, item) {
if (item.ArticleCode == code) {
if (item.CollectedQuantity < item.Quantity) {
item.CollectedQuantity++;
item.dirty = true;
dataSource.sync();
}
}
})
})
jQueryの 'each'を使用しないでください、あなたがする必要がある場合は、単なる' for'ループして終了を行います。 – DavidG
'false'を返すことで、' each'をjQueryで中止することができます。または、適切な項目を取得するために[Array#find](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find)を使用してください: 'var item = allData.find (item => item.ArticleCode === code && item.CollectedQuantity
Thomas