J'ai un script qui boucle dans ma grille de kendo lorsqu'un ID d'article est soumis, ce script ajoute +1 à la quantité lorsqu'une correspondance est trouvée. Une fois qu'une correspondance est trouvée, je veux que mon script arrête de boucler puisque le même article-id peut avoir plus d'une ligne dans la grille et l'idée est d'ajouter seulement +1 au premier match. Je sais qu'une boucle foreach ne peut pas contenir de break;
et l'utilisation d'une boucle for ne semble pas fonctionner pour les datarows kendo-grid. Actuellement, le code ajoute +1 à chaque ligne correspondante. Est-ce que quelqu'un sait comment je peux accomplir cela?Comment arrêter de boucler en cas de succès
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();
}
}
})
})
Ne pas utiliser jQuery 'each', juste faire une boucle' for' simple et sortie quand vous avez besoin. – DavidG
vous pouvez abandonner un jQuery 'each' en retournant' false'. Ou vous utilisez [Array # find] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find) pour obtenir l'élément correct: 'var item = allData.find (item => item.ArticleCode === code && item.CollectedQuantity
Thomas