Javascript 如何停止成功的循环
我有一个脚本,当提交一个文章id时,它会在我的剑道网格中循环,当找到匹配项时,这个脚本会在数量上增加+1。找到匹配项后,我希望我的脚本停止循环,因为同一个文章id在网格中可以有多行,并且想法是只向第一个匹配项添加+1。我知道foreach循环不能包含Javascript 如何停止成功的循环,javascript,asp.net-mvc,for-loop,foreach,kendo-grid,Javascript,Asp.net Mvc,For Loop,Foreach,Kendo Grid,我有一个脚本,当提交一个文章id时,它会在我的剑道网格中循环,当找到匹配项时,这个脚本会在数量上增加+1。找到匹配项后,我希望我的脚本停止循环,因为同一个文章id在网格中可以有多行,并且想法是只向第一个匹配项添加+1。我知道foreach循环不能包含中断和使用for循环似乎不适用于剑道网格数据行。当前,代码将向每个匹配行添加+1。有人知道我怎样才能做到这一点吗 JS: $('#txtBarcode')。提交(函数(e){ var网格=$(“#GCLinesGrid”).data(“kendoGr
中断代码>和使用for循环似乎不适用于剑道网格数据行。当前,代码将向每个匹配行添加+1。有人知道我怎样才能做到这一点吗
JS:
$('#txtBarcode')。提交(函数(e){
var网格=$(“#GCLinesGrid”).data(“kendoGrid”);
var dataSource=$(“#GCLinesGrid”).data(“kendoGrid”).dataSource;
var allData=grid.dataSource.data();
var代码=此值;
$.each(所有数据、函数(索引、项){
if(item.ArticleCode==代码){
if(item.CollectedQuantity
一个简单的返回false
一旦找到匹配项,就应该执行此操作。一个简单的返回false代码>一旦找到匹配项,就应该这样做。使用返回false
是早期跳出循环的正式方法。使用返回false
是早期跳出循环的正式方法。如果为true,则可以使用函数并返回:
$('#txtBarcode').submit(function (e) {
var grid = $("#GCLinesGrid").data("kendoGrid");
var dataSource = $("#GCLinesGrid").data("kendoGrid").dataSource;
var allData = grid.dataSource.data();
var code = this.value;
loop(/*args here*/)
})
function loop (/*args you need here*/) {
$.each(allData, function (item, index) {/*fix forEach*/
if (item.ArticleCode == code) {
if (item.CollectedQuantity < item.Quantity) {
item.CollectedQuantity++;
item.dirty = true;
dataSource.sync();
return false; /*or return some value you need*/
}
}
})
}
$('#txtBarcode')。提交(函数(e){
var网格=$(“#GCLinesGrid”).data(“kendoGrid”);
var dataSource=$(“#GCLinesGrid”).data(“kendoGrid”).dataSource;
var allData=grid.dataSource.data();
var代码=此值;
循环(/*参数在这里*/)
})
函数循环(/*此处需要的参数*/){
$.each(所有数据、函数(项、索引){/*fix forEach*/
if(item.ArticleCode==代码){
if(item.CollectedQuantity
如果为true,则可以使用函数并返回:
$('#txtBarcode').submit(function (e) {
var grid = $("#GCLinesGrid").data("kendoGrid");
var dataSource = $("#GCLinesGrid").data("kendoGrid").dataSource;
var allData = grid.dataSource.data();
var code = this.value;
loop(/*args here*/)
})
function loop (/*args you need here*/) {
$.each(allData, function (item, index) {/*fix forEach*/
if (item.ArticleCode == code) {
if (item.CollectedQuantity < item.Quantity) {
item.CollectedQuantity++;
item.dirty = true;
dataSource.sync();
return false; /*or return some value you need*/
}
}
})
}
$('#txtBarcode')。提交(函数(e){
var网格=$(“#GCLinesGrid”).data(“kendoGrid”);
var dataSource=$(“#GCLinesGrid”).data(“kendoGrid”).dataSource;
var allData=grid.dataSource.data();
var代码=此值;
循环(/*参数在这里*/)
})
函数循环(/*此处需要的参数*/){
$.each(所有数据、函数(项、索引){/*fix forEach*/
if(item.ArticleCode==代码){
if(item.CollectedQuantity
不要使用jQuery每个
,只需对
循环执行一个简单的,并在需要时退出。您可以通过返回false来中止jQuery每个
。或者您可以使用来获取适当的项:var item=allData.find(item=>item.ArticleCode==code&&item.CollectedQuantity
不要使用jQuery每个
,只需对
循环执行一个简单的,并在需要时退出。您可以通过返回false来中止jQuery每个
。或者您可以使用来获取适当的项:var item=allData.find(item=>item.ArticleCode==code&&item.CollectedQuantity
这是jQueryseach()
循环的一个特性,不适用于本机数组方法。这是jQueryseach()
循环的一个特性,不适用于本机数组方法。我只是想说清楚。太棒了,很高兴我能帮上忙!太棒了,很高兴我能帮忙!