Javascript Jquery验证,停止执行

Javascript Jquery验证,停止执行,javascript,jquery,Javascript,Jquery,我这里有问题,我需要一些帮助 我的表格看起来像 要求: 如果单击按钮,如果其中一个大于100,我不想保存记录字段 我试过这个密码 $('.accept').click(function() { $(this).parentsUntil('div.record').find('[name^="marks"]').each(function() { var subjectID = $(this).attr('id'); var marks = $(this).val(); // ch

我这里有问题,我需要一些帮助
我的表格看起来像

要求: 如果单击按钮,如果其中一个大于100,我不想保存记录字段 我试过这个密码

$('.accept').click(function() {
$(this).parentsUntil('div.record').find('[name^="marks"]').each(function() {
var subjectID = $(this).attr('id');
var marks       = $(this).val();

// check value
if(marks > 100)  {
alert("error");
return false;
}
// save marks of this subject
// code to insert record into database table
});

return false;
});
如果用户填写为,物理=83,数学=89,生物学=102,英语=94 然后我的代码将前两个主题插入数据库,第三个停止并返回false

但我希望我的程序不要在任何科目大于100的情况下插入任何分数


任何人都知道问题出在哪里。

问题是,您正在运行
代码,以便在
每个
循环中将记录插入数据库表中
——当然,时间是单向的,您不能在发现问题并说“哦,不,不要执行以前的迭代”后倒带

最简单的解决方案是验证整个表单,然后将数据发送到数据库

$('.accept').click(function() {
    const marks = $(this).parentsUntil('div.record').find('[name^="marks"]');
    let valid = true;
    marks.each(function() {
        var marks = $(this).val();
        if (marks > 100) {
            alert("error");
            valid = false;
            return false; // I gather this terminates the each loop? I don't know jQuery at all
        }
    }
    if (valid) {
        marks.each(function() {
            var subjectID = $(this).attr('id');
            var marks = $(this).val();

            // save marks of this subject
            // code to insert record into database table
        });
    }
    return false;
});

为什么@mohamudneri不返回false;不停止执行仅当所有输入有效时,才会继续发送到数据库。否则,将不会向数据库发送任何内容。您所指的返回值为false?你是说这个代码仍然发送到数据库,分数超过100?如果是这样的话,您显然是复制错了。我输入了var valid=true,在If块中,我再次输入了var valid=false