我有这个对象数组:
[Object, Object]
0: Object
{
date: ""
number: undefined
}
1: Object
{
date: ""
number: undefined
}
如果该值不为空,则总是说必需。也许有人可以帮助我更多地了解这一点。
这是我的代码:
$(function(){
var len = $('#groupContainer > div').length;
var arr = [];
for(var i=0; i < len; i++){
var number = $('#number_' + [i + 1]);
var date = $('#date_' + [i + 1]);
console.log(number)
var a = number.map(function(){
return this.value;
});
var b = date.map(function(){
return this.value;
});
var newObj = {number: a[0], date: b[0]}
arr.push(newObj);
}
for(var c = 0; c < arr.length; c++)
{
var count = c + 1;
var message ="";
for(var d in arr[c])
{
if(arr[c].hasOwnProperty(d))
{
if(arr[c][d] == "")
{
message = d + ' is required!';
}
message += message + "\n";
}
}
alert('Group: ' + count + ' ' + message + '\n');
}
});
答案 0 :(得分:1)
对空虚的检查似乎正常。 &#34;第1组和第34组中的两个字段;有一个价值,它的信息也没有提到&#34;必需。&#34;
但是,您对message
的构建方式存在疑问,请至少报告一次属性:
"Group: 2 date is required!date is required!"
这是由于message
:
if(arr[c][d] == "")
{
message = d + ' is required!';
}
message += message + "\n";
使用赋值运算符(message
)修改=
的第一行将丢弃message
可能持有的任何先前值。
var message = "something previous"
message = 'property' + ' is required!';
console.log(message); // "property is required!"
然后另一行重复message
的内容,将其附加到自身:
// same as `message = message + message + "\n";`
message += message + "\n";
console.log(message); // "property is required!property is required!\n"
如何修改此选项仅在找到空字段时修改message
,并在添加了什么内容的情况下连接到上一个值。
if(arr[c][d] == "")
{
message += d + ' is required!\n';
// ^ concatenate onto the previous `message` value
// including the `\n` here
}
// remove the other modification
答案 1 :(得分:1)
答案 2 :(得分:1)
根据我在小评论对话框后的理解,您应该实现自定义验证,例如以下函数中的自定义验证
function isObjectNullOrEmpty(obj) {
if (!obj) {
return true;
}
var requiredKeys = ['name'];
for (var i in requiredKeys) {
var key = requiredKeys[i];
var value = obj[key];
if (value === undefined || value === null) {
return true;
}
if ((typeof value === 'string' || value instanceof String) && !value.trim()) {
return true
}
}
return false;
}
$(function () {
var object1 = {
name: ''
};
alert(JSON.stringify(object1) + ' \n\nresult : ' + isObjectNullOrEmpty(object1));
var object2 = {
name: 'asd'
};
alert(JSON.stringify(object2) + ' \n\nresult : ' + isObjectNullOrEmpty(object2));
});