我目前有一个大型民意调查,由一个表格,5个类别,每个类别中的一堆问题和每个问题的少数单选按钮答案组成。每个类别都在不同的字段集中,每个类别都需要不同的最低投票数才能处理表单。
基本上,在表单提交时,我试图让jQuery通过.each()循环遍历每个fieldset并确定是否已满足每个类别的最小投票数,如果没有,则取消表单提交。到目前为止我所处理的类别很好,但不会阻止表格在必要时提交。
$('#pollform').submit(function(event){
var formsubmit = event;
$('fieldset').each(function(formsubmit){
catname = $(this).children('input[name=catname]').val(); // Category name
reqvotes = $(this).children('input[name=catcount]').val(); // Minimum required number of votes for current category in loop
numvotes = $(this).children(':checked').size(); // Number of votes for current category in loop
// Check minimum number of votes against actual number cast. Alert user and prevent form from submitting if necessary
if (reqvotes > numvotes)
{
alert('You need to fill out at least ' + reqvotes + ' items for ' + catname + '.');
formsubmit.preventDefault();
}
});
});
有什么想法吗?
答案 0 :(得分:1)
您是否尝试过返回false?当然,你必须在每个循环之外这样做。
$('#pollform').submit(function(event){
var stopsubmit = false;
$('fieldset').each(function(formsubmit){
if(stopsubmit) return;
catname = $(this).children('input[name=catname]').val(); // Category name
reqvotes = $(this).children('input[name=catcount]').val(); // Minimum required number of votes for current category in loop
numvotes = $(this).children(':checked').size(); // Number of votes for current category in loop
// Check minimum number of votes against actual number cast. Alert user and prevent form from submitting if necessary
if (reqvotes > numvotes)
{
alert('You need to fill out at least ' + reqvotes + ' items for ' + catname + '.');
stopsubmit=true;
}
});
if(stopsubmit) return false;
});
我没有测试此代码。
答案 1 :(得分:0)
在第二个return false;
之后添加});
,您只需返回false一次,而不是每次循环each()
函数。