【发布时间】:2015-10-10 08:10:24
【问题描述】:
我尝试了将近两天,但仍然没有。也许有人可以帮助精通javascript循环的人。
我之前问过这个问题并更改了一些代码,但仍然无法显示预期的数据。并且还在为此苦苦挣扎。
我有这个代码:
$(function(){
var len = $('#groupContainer > div').length;
var data = [];
for(var i=0; i < len; i++){
var number = $('#number_' + [i + 1]);
var date = $('#date_' + [i + 1]);
var count = i + 1;
var message ="";
var a = number.map(function(){
return this.value;
});
var b = date.map(function(){
return this.value;
});
var newObj = {number: a[0], date: b[0]}
data.push(newObj);
}
var message = "";
for(var c = 0; c < data.length; c++)
{
haveErrorInGroup = false;
for(var d in data[c])
{
if(data[c].hasOwnProperty(d))
{
if(data[c][d] == "")
{
if(!haveErrorInGroup){
haveErrorInGroup= true;
message += 'Group: ' + [c + 1] + '\n';
}
message += d + ' is required!\n';
}
if(d == "date")
{
if(data[c][d].length != 22 && data[c][d] != "")
{
message += 'Invalid Date!\n';
}
}
}
}
}
if(message){
alert(message);
}
});
以及预期的输出:
如果第 1 组中的所有字段都已填写,并且第 2 组未显示警报框:
Group 2:
Number is required!
Date is required!
如果所有字段未填写,则显示:
Group 1, 2 Number is required!
Group 1, 2 Date is required!
如果日期不是真正的日期:
Group 1, 2 Date is invalid.
如果其中一个输入无效。
Group 2 Date is invalid.
如果所有字段都已填写,则什么也不做。
这是我的FIDDLE
【问题讨论】:
-
真的 - 变量名为
a、b、c和d?当变量没有有意义的名称时,会使您的代码更难阅读和理解。 -
对不起。它仅用于测试目的。
-
使用更有意义的变量名可以更轻松地解释您的代码。
-
是的。如果我能度过难关,我会改变它。
-
同时删除令人作呕的奉承,并尝试缩小您的问题范围。
标签: javascript jquery arrays loops